{
 "cells": [
  {
   "cell_type": "code",
   "execution_count": 5,
   "id": "b54c6ff3",
   "metadata": {},
   "outputs": [],
   "source": [
    "# plt.rcParams['figure.figsize'] = (8, 3)   \n",
    "%config InlineBackend.figure_format ='retina'"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "c2459ddb",
   "metadata": {},
   "source": [
    "## 4.2.1 数据导入"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "id": "cb003504-3203-4bfc-8d91-a403d8d82731",
   "metadata": {},
   "outputs": [],
   "source": [
    "import pandas as pd\n",
    "csvData = pd.read_csv('路径/csvData.csv'）"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "id": "990dc1b7-c54c-49cc-9b33-8c62f8a57c82",
   "metadata": {},
   "outputs": [],
   "source": [
    "import pandas as pd\n",
    "df = pd.read_excel('路径/filename.xlsx', sheetname = 'Sheet2')"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "id": "43f4428f",
   "metadata": {},
   "outputs": [],
   "source": [
    "textFile = open('/路径/textFile.txt', r）"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "d5da9575",
   "metadata": {},
   "source": [
    "## 4.2.2 数据保存函数"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "id": "9cae8316-667f-4d9c-8355-b4b3ee70b5d5",
   "metadata": {},
   "outputs": [],
   "source": [
    "df.to_csv('路径/csvData.csv')"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 9,
   "id": "3cd1ca28",
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Requirement already satisfied: openpyxl in /Users/wangdong/opt/anaconda3/lib/python3.10/site-packages (3.0.10)\n",
      "Requirement already satisfied: et_xmlfile in /Users/wangdong/opt/anaconda3/lib/python3.10/site-packages (from openpyxl) (1.1.0)\n",
      "Note: you may need to restart the kernel to use updated packages.\n"
     ]
    }
   ],
   "source": [
    "pip install openpyxl"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "id": "25c70e02",
   "metadata": {},
   "outputs": [],
   "source": [
    "# 以excel的xlsx格式保存数据\n",
    "df.to_excel('路径/filename.xlsx')"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "8a14372d-b9e2-4f17-8e8a-537c9b12cda5",
   "metadata": {},
   "source": [
    "## 4.2.3 导入数据"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 1,
   "id": "4b8ffbdd",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>date</th>\n",
       "      <th>code</th>\n",
       "      <th>open</th>\n",
       "      <th>high</th>\n",
       "      <th>low</th>\n",
       "      <th>close</th>\n",
       "      <th>volume</th>\n",
       "      <th>turnover</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>0</th>\n",
       "      <td>2020/1/2</td>\n",
       "      <td>601988</td>\n",
       "      <td>3.10</td>\n",
       "      <td>3.13</td>\n",
       "      <td>3.09</td>\n",
       "      <td>3.11</td>\n",
       "      <td>1389910</td>\n",
       "      <td>517677568</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>1</th>\n",
       "      <td>2020/1/3</td>\n",
       "      <td>601988</td>\n",
       "      <td>3.12</td>\n",
       "      <td>3.12</td>\n",
       "      <td>3.09</td>\n",
       "      <td>3.10</td>\n",
       "      <td>857384</td>\n",
       "      <td>318451776</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2</th>\n",
       "      <td>2020/1/6</td>\n",
       "      <td>601988</td>\n",
       "      <td>3.09</td>\n",
       "      <td>3.11</td>\n",
       "      <td>3.07</td>\n",
       "      <td>3.08</td>\n",
       "      <td>1371085</td>\n",
       "      <td>507089536</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>3</th>\n",
       "      <td>2020/1/7</td>\n",
       "      <td>601988</td>\n",
       "      <td>3.08</td>\n",
       "      <td>3.13</td>\n",
       "      <td>3.08</td>\n",
       "      <td>3.11</td>\n",
       "      <td>1565238</td>\n",
       "      <td>582835392</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>4</th>\n",
       "      <td>2020/1/8</td>\n",
       "      <td>601988</td>\n",
       "      <td>3.10</td>\n",
       "      <td>3.10</td>\n",
       "      <td>3.07</td>\n",
       "      <td>3.08</td>\n",
       "      <td>1042788</td>\n",
       "      <td>385355648</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>...</th>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>729</th>\n",
       "      <td>2023/1/4</td>\n",
       "      <td>601988</td>\n",
       "      <td>3.16</td>\n",
       "      <td>3.21</td>\n",
       "      <td>3.16</td>\n",
       "      <td>3.20</td>\n",
       "      <td>2007337</td>\n",
       "      <td>640825711</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>730</th>\n",
       "      <td>2023/1/5</td>\n",
       "      <td>601988</td>\n",
       "      <td>3.21</td>\n",
       "      <td>3.23</td>\n",
       "      <td>3.20</td>\n",
       "      <td>3.20</td>\n",
       "      <td>1180471</td>\n",
       "      <td>379146671</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>731</th>\n",
       "      <td>2023/1/6</td>\n",
       "      <td>601988</td>\n",
       "      <td>3.21</td>\n",
       "      <td>3.22</td>\n",
       "      <td>3.18</td>\n",
       "      <td>3.21</td>\n",
       "      <td>1258527</td>\n",
       "      <td>402754304</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>732</th>\n",
       "      <td>2023/1/9</td>\n",
       "      <td>601988</td>\n",
       "      <td>3.21</td>\n",
       "      <td>3.22</td>\n",
       "      <td>3.19</td>\n",
       "      <td>3.19</td>\n",
       "      <td>835156</td>\n",
       "      <td>267453283</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>733</th>\n",
       "      <td>2023/1/10</td>\n",
       "      <td>601988</td>\n",
       "      <td>3.20</td>\n",
       "      <td>3.20</td>\n",
       "      <td>3.18</td>\n",
       "      <td>NaN</td>\n",
       "      <td>665470</td>\n",
       "      <td>211969670</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "<p>734 rows × 8 columns</p>\n",
       "</div>"
      ],
      "text/plain": [
       "          date    code  open  high   low  close   volume   turnover\n",
       "0     2020/1/2  601988  3.10  3.13  3.09   3.11  1389910  517677568\n",
       "1     2020/1/3  601988  3.12  3.12  3.09   3.10   857384  318451776\n",
       "2     2020/1/6  601988  3.09  3.11  3.07   3.08  1371085  507089536\n",
       "3     2020/1/7  601988  3.08  3.13  3.08   3.11  1565238  582835392\n",
       "4     2020/1/8  601988  3.10  3.10  3.07   3.08  1042788  385355648\n",
       "..         ...     ...   ...   ...   ...    ...      ...        ...\n",
       "729   2023/1/4  601988  3.16  3.21  3.16   3.20  2007337  640825711\n",
       "730   2023/1/5  601988  3.21  3.23  3.20   3.20  1180471  379146671\n",
       "731   2023/1/6  601988  3.21  3.22  3.18   3.21  1258527  402754304\n",
       "732   2023/1/9  601988  3.21  3.22  3.19   3.19   835156  267453283\n",
       "733  2023/1/10  601988  3.20  3.20  3.18    NaN   665470  211969670\n",
       "\n",
       "[734 rows x 8 columns]"
      ]
     },
     "execution_count": 1,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "import pandas as pd\n",
    "df = pd.read_csv('../dataFiles/boc_df.csv')\n",
    "df"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 10,
   "id": "343ddae2",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "Index(['date', 'code', 'open', 'high', 'low', 'close', 'volume', 'turnover'], dtype='object')"
      ]
     },
     "execution_count": 10,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "boc_df = pd.read_csv('../dataFiles/boc_df.csv')\n",
    "boc_df.columns                        # 显示列名"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 11,
   "id": "20a8e070",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "date        734\n",
       "code        734\n",
       "open        734\n",
       "high        734\n",
       "low         734\n",
       "close       733\n",
       "volume      734\n",
       "turnover    734\n",
       "dtype: int64"
      ]
     },
     "execution_count": 11,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "boc_df.count()                        # 查看每列行数"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "id": "59f5f977",
   "metadata": {},
   "outputs": [],
   "source": [
    "# 方法1：del语句删除列\n",
    "del boc_df['code'] "
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 4,
   "id": "cb2cbe40",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>date</th>\n",
       "      <th>open</th>\n",
       "      <th>high</th>\n",
       "      <th>low</th>\n",
       "      <th>close</th>\n",
       "      <th>volume</th>\n",
       "      <th>turnover</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>0</th>\n",
       "      <td>2020/1/2</td>\n",
       "      <td>3.10</td>\n",
       "      <td>3.13</td>\n",
       "      <td>3.09</td>\n",
       "      <td>3.11</td>\n",
       "      <td>1389910</td>\n",
       "      <td>517677568</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>1</th>\n",
       "      <td>2020/1/3</td>\n",
       "      <td>3.12</td>\n",
       "      <td>3.12</td>\n",
       "      <td>3.09</td>\n",
       "      <td>3.10</td>\n",
       "      <td>857384</td>\n",
       "      <td>318451776</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2</th>\n",
       "      <td>2020/1/6</td>\n",
       "      <td>3.09</td>\n",
       "      <td>3.11</td>\n",
       "      <td>3.07</td>\n",
       "      <td>3.08</td>\n",
       "      <td>1371085</td>\n",
       "      <td>507089536</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>3</th>\n",
       "      <td>2020/1/7</td>\n",
       "      <td>3.08</td>\n",
       "      <td>3.13</td>\n",
       "      <td>3.08</td>\n",
       "      <td>3.11</td>\n",
       "      <td>1565238</td>\n",
       "      <td>582835392</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>4</th>\n",
       "      <td>2020/1/8</td>\n",
       "      <td>3.10</td>\n",
       "      <td>3.10</td>\n",
       "      <td>3.07</td>\n",
       "      <td>3.08</td>\n",
       "      <td>1042788</td>\n",
       "      <td>385355648</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>...</th>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>729</th>\n",
       "      <td>2023/1/4</td>\n",
       "      <td>3.16</td>\n",
       "      <td>3.21</td>\n",
       "      <td>3.16</td>\n",
       "      <td>3.20</td>\n",
       "      <td>2007337</td>\n",
       "      <td>640825711</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>730</th>\n",
       "      <td>2023/1/5</td>\n",
       "      <td>3.21</td>\n",
       "      <td>3.23</td>\n",
       "      <td>3.20</td>\n",
       "      <td>3.20</td>\n",
       "      <td>1180471</td>\n",
       "      <td>379146671</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>731</th>\n",
       "      <td>2023/1/6</td>\n",
       "      <td>3.21</td>\n",
       "      <td>3.22</td>\n",
       "      <td>3.18</td>\n",
       "      <td>3.21</td>\n",
       "      <td>1258527</td>\n",
       "      <td>402754304</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>732</th>\n",
       "      <td>2023/1/9</td>\n",
       "      <td>3.21</td>\n",
       "      <td>3.22</td>\n",
       "      <td>3.19</td>\n",
       "      <td>3.19</td>\n",
       "      <td>835156</td>\n",
       "      <td>267453283</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>733</th>\n",
       "      <td>2023/1/10</td>\n",
       "      <td>3.20</td>\n",
       "      <td>3.20</td>\n",
       "      <td>3.18</td>\n",
       "      <td>NaN</td>\n",
       "      <td>665470</td>\n",
       "      <td>211969670</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "<p>734 rows × 7 columns</p>\n",
       "</div>"
      ],
      "text/plain": [
       "          date  open  high   low  close   volume   turnover\n",
       "0     2020/1/2  3.10  3.13  3.09   3.11  1389910  517677568\n",
       "1     2020/1/3  3.12  3.12  3.09   3.10   857384  318451776\n",
       "2     2020/1/6  3.09  3.11  3.07   3.08  1371085  507089536\n",
       "3     2020/1/7  3.08  3.13  3.08   3.11  1565238  582835392\n",
       "4     2020/1/8  3.10  3.10  3.07   3.08  1042788  385355648\n",
       "..         ...   ...   ...   ...    ...      ...        ...\n",
       "729   2023/1/4  3.16  3.21  3.16   3.20  2007337  640825711\n",
       "730   2023/1/5  3.21  3.23  3.20   3.20  1180471  379146671\n",
       "731   2023/1/6  3.21  3.22  3.18   3.21  1258527  402754304\n",
       "732   2023/1/9  3.21  3.22  3.19   3.19   835156  267453283\n",
       "733  2023/1/10  3.20  3.20  3.18    NaN   665470  211969670\n",
       "\n",
       "[734 rows x 7 columns]"
      ]
     },
     "execution_count": 4,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "boc_df2 = boc_df.drop(['code'], axis = 1)     \n",
    "boc_df2\n"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 5,
   "id": "35d162fb",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>date</th>\n",
       "      <th>open</th>\n",
       "      <th>high</th>\n",
       "      <th>low</th>\n",
       "      <th>close</th>\n",
       "      <th>volume</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>0</th>\n",
       "      <td>2020/1/2</td>\n",
       "      <td>3.10</td>\n",
       "      <td>3.13</td>\n",
       "      <td>3.09</td>\n",
       "      <td>3.11</td>\n",
       "      <td>1389910</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>1</th>\n",
       "      <td>2020/1/3</td>\n",
       "      <td>3.12</td>\n",
       "      <td>3.12</td>\n",
       "      <td>3.09</td>\n",
       "      <td>3.10</td>\n",
       "      <td>857384</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2</th>\n",
       "      <td>2020/1/6</td>\n",
       "      <td>3.09</td>\n",
       "      <td>3.11</td>\n",
       "      <td>3.07</td>\n",
       "      <td>3.08</td>\n",
       "      <td>1371085</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>3</th>\n",
       "      <td>2020/1/7</td>\n",
       "      <td>3.08</td>\n",
       "      <td>3.13</td>\n",
       "      <td>3.08</td>\n",
       "      <td>3.11</td>\n",
       "      <td>1565238</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>4</th>\n",
       "      <td>2020/1/8</td>\n",
       "      <td>3.10</td>\n",
       "      <td>3.10</td>\n",
       "      <td>3.07</td>\n",
       "      <td>3.08</td>\n",
       "      <td>1042788</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>...</th>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>729</th>\n",
       "      <td>2023/1/4</td>\n",
       "      <td>3.16</td>\n",
       "      <td>3.21</td>\n",
       "      <td>3.16</td>\n",
       "      <td>3.20</td>\n",
       "      <td>2007337</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>730</th>\n",
       "      <td>2023/1/5</td>\n",
       "      <td>3.21</td>\n",
       "      <td>3.23</td>\n",
       "      <td>3.20</td>\n",
       "      <td>3.20</td>\n",
       "      <td>1180471</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>731</th>\n",
       "      <td>2023/1/6</td>\n",
       "      <td>3.21</td>\n",
       "      <td>3.22</td>\n",
       "      <td>3.18</td>\n",
       "      <td>3.21</td>\n",
       "      <td>1258527</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>732</th>\n",
       "      <td>2023/1/9</td>\n",
       "      <td>3.21</td>\n",
       "      <td>3.22</td>\n",
       "      <td>3.19</td>\n",
       "      <td>3.19</td>\n",
       "      <td>835156</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>733</th>\n",
       "      <td>2023/1/10</td>\n",
       "      <td>3.20</td>\n",
       "      <td>3.20</td>\n",
       "      <td>3.18</td>\n",
       "      <td>NaN</td>\n",
       "      <td>665470</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "<p>734 rows × 6 columns</p>\n",
       "</div>"
      ],
      "text/plain": [
       "          date  open  high   low  close   volume\n",
       "0     2020/1/2  3.10  3.13  3.09   3.11  1389910\n",
       "1     2020/1/3  3.12  3.12  3.09   3.10   857384\n",
       "2     2020/1/6  3.09  3.11  3.07   3.08  1371085\n",
       "3     2020/1/7  3.08  3.13  3.08   3.11  1565238\n",
       "4     2020/1/8  3.10  3.10  3.07   3.08  1042788\n",
       "..         ...   ...   ...   ...    ...      ...\n",
       "729   2023/1/4  3.16  3.21  3.16   3.20  2007337\n",
       "730   2023/1/5  3.21  3.23  3.20   3.20  1180471\n",
       "731   2023/1/6  3.21  3.22  3.18   3.21  1258527\n",
       "732   2023/1/9  3.21  3.22  3.19   3.19   835156\n",
       "733  2023/1/10  3.20  3.20  3.18    NaN   665470\n",
       "\n",
       "[734 rows x 6 columns]"
      ]
     },
     "execution_count": 5,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "boc_df3 = boc_df.drop(['turnover', 'code'], axis = 1)\n",
    "boc_df3\n"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 6,
   "id": "27cc11b8",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>date</th>\n",
       "      <th>close</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>0</th>\n",
       "      <td>2020/1/2</td>\n",
       "      <td>3.11</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>1</th>\n",
       "      <td>2020/1/3</td>\n",
       "      <td>3.10</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2</th>\n",
       "      <td>2020/1/6</td>\n",
       "      <td>3.08</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>3</th>\n",
       "      <td>2020/1/7</td>\n",
       "      <td>3.11</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>4</th>\n",
       "      <td>2020/1/8</td>\n",
       "      <td>3.08</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>...</th>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>729</th>\n",
       "      <td>2023/1/4</td>\n",
       "      <td>3.20</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>730</th>\n",
       "      <td>2023/1/5</td>\n",
       "      <td>3.20</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>731</th>\n",
       "      <td>2023/1/6</td>\n",
       "      <td>3.21</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>732</th>\n",
       "      <td>2023/1/9</td>\n",
       "      <td>3.19</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>733</th>\n",
       "      <td>2023/1/10</td>\n",
       "      <td>NaN</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "<p>734 rows × 2 columns</p>\n",
       "</div>"
      ],
      "text/plain": [
       "          date  close\n",
       "0     2020/1/2   3.11\n",
       "1     2020/1/3   3.10\n",
       "2     2020/1/6   3.08\n",
       "3     2020/1/7   3.11\n",
       "4     2020/1/8   3.08\n",
       "..         ...    ...\n",
       "729   2023/1/4   3.20\n",
       "730   2023/1/5   3.20\n",
       "731   2023/1/6   3.21\n",
       "732   2023/1/9   3.19\n",
       "733  2023/1/10    NaN\n",
       "\n",
       "[734 rows x 2 columns]"
      ]
     },
     "execution_count": 6,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "# 除[ ]中列名外，将boc_df的其他列都删除\n",
    "boc_df4 = boc_df.loc[:, df.columns.isin(['date', 'close'])]\n",
    "boc_df4\n"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 7,
   "id": "8fc895d5",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>date</th>\n",
       "      <th>close</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>0</th>\n",
       "      <td>2020/1/2</td>\n",
       "      <td>3.11</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>1</th>\n",
       "      <td>2020/1/3</td>\n",
       "      <td>3.10</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2</th>\n",
       "      <td>2020/1/6</td>\n",
       "      <td>3.08</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>3</th>\n",
       "      <td>2020/1/7</td>\n",
       "      <td>3.11</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>4</th>\n",
       "      <td>2020/1/8</td>\n",
       "      <td>3.08</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>...</th>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>729</th>\n",
       "      <td>2023/1/4</td>\n",
       "      <td>3.20</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>730</th>\n",
       "      <td>2023/1/5</td>\n",
       "      <td>3.20</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>731</th>\n",
       "      <td>2023/1/6</td>\n",
       "      <td>3.21</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>732</th>\n",
       "      <td>2023/1/9</td>\n",
       "      <td>3.19</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>733</th>\n",
       "      <td>2023/1/10</td>\n",
       "      <td>NaN</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "<p>734 rows × 2 columns</p>\n",
       "</div>"
      ],
      "text/plain": [
       "          date  close\n",
       "0     2020/1/2   3.11\n",
       "1     2020/1/3   3.10\n",
       "2     2020/1/6   3.08\n",
       "3     2020/1/7   3.11\n",
       "4     2020/1/8   3.08\n",
       "..         ...    ...\n",
       "729   2023/1/4   3.20\n",
       "730   2023/1/5   3.20\n",
       "731   2023/1/6   3.21\n",
       "732   2023/1/9   3.19\n",
       "733  2023/1/10    NaN\n",
       "\n",
       "[734 rows x 2 columns]"
      ]
     },
     "execution_count": 7,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "# 特定列的提取\n",
    "boc_df5 = boc_df[['date', 'close']]\n",
    "boc_df5\n"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 8,
   "id": "388ece9b",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>date</th>\n",
       "      <th>收盘价</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>0</th>\n",
       "      <td>2020/1/2</td>\n",
       "      <td>3.11</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>1</th>\n",
       "      <td>2020/1/3</td>\n",
       "      <td>3.10</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2</th>\n",
       "      <td>2020/1/6</td>\n",
       "      <td>3.08</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "</div>"
      ],
      "text/plain": [
       "       date   收盘价\n",
       "0  2020/1/2  3.11\n",
       "1  2020/1/3  3.10\n",
       "2  2020/1/6  3.08"
      ]
     },
     "execution_count": 8,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "boc_df6 = boc_df5.rename(columns={'close' : '收盘价'})\n",
    "boc_df6.head(3)\n"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 9,
   "id": "c2e1553d",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>date</th>\n",
       "      <th>code</th>\n",
       "      <th>open</th>\n",
       "      <th>high</th>\n",
       "      <th>low</th>\n",
       "      <th>close</th>\n",
       "      <th>volume</th>\n",
       "      <th>turnover</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>0</th>\n",
       "      <td>2020/1/2</td>\n",
       "      <td>601988</td>\n",
       "      <td>3.10</td>\n",
       "      <td>3.13</td>\n",
       "      <td>3.09</td>\n",
       "      <td>3.11</td>\n",
       "      <td>1389910</td>\n",
       "      <td>517677568</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>1</th>\n",
       "      <td>2020/1/3</td>\n",
       "      <td>601988</td>\n",
       "      <td>3.12</td>\n",
       "      <td>3.12</td>\n",
       "      <td>3.09</td>\n",
       "      <td>3.10</td>\n",
       "      <td>857384</td>\n",
       "      <td>318451776</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2</th>\n",
       "      <td>2020/1/6</td>\n",
       "      <td>601988</td>\n",
       "      <td>3.09</td>\n",
       "      <td>3.11</td>\n",
       "      <td>3.07</td>\n",
       "      <td>3.08</td>\n",
       "      <td>1371085</td>\n",
       "      <td>507089536</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>3</th>\n",
       "      <td>2020/1/7</td>\n",
       "      <td>601988</td>\n",
       "      <td>3.08</td>\n",
       "      <td>3.13</td>\n",
       "      <td>3.08</td>\n",
       "      <td>3.11</td>\n",
       "      <td>1565238</td>\n",
       "      <td>582835392</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>4</th>\n",
       "      <td>2020/1/8</td>\n",
       "      <td>601988</td>\n",
       "      <td>3.10</td>\n",
       "      <td>3.10</td>\n",
       "      <td>3.07</td>\n",
       "      <td>3.08</td>\n",
       "      <td>1042788</td>\n",
       "      <td>385355648</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "</div>"
      ],
      "text/plain": [
       "       date    code  open  high   low  close   volume   turnover\n",
       "0  2020/1/2  601988  3.10  3.13  3.09   3.11  1389910  517677568\n",
       "1  2020/1/3  601988  3.12  3.12  3.09   3.10   857384  318451776\n",
       "2  2020/1/6  601988  3.09  3.11  3.07   3.08  1371085  507089536\n",
       "3  2020/1/7  601988  3.08  3.13  3.08   3.11  1565238  582835392\n",
       "4  2020/1/8  601988  3.10  3.10  3.07   3.08  1042788  385355648"
      ]
     },
     "execution_count": 9,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "boc_df7 = boc_df\n",
    "boc_df7.head()\n"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 10,
   "id": "13fc8f7c",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>date</th>\n",
       "      <th>code</th>\n",
       "      <th>open</th>\n",
       "      <th>high</th>\n",
       "      <th>low</th>\n",
       "      <th>close</th>\n",
       "      <th>volume</th>\n",
       "      <th>turnover</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>0</th>\n",
       "      <td>2020/1/2</td>\n",
       "      <td>601988</td>\n",
       "      <td>3.10</td>\n",
       "      <td>3.13</td>\n",
       "      <td>3.09</td>\n",
       "      <td>3.11</td>\n",
       "      <td>1389910</td>\n",
       "      <td>0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>1</th>\n",
       "      <td>2020/1/3</td>\n",
       "      <td>601988</td>\n",
       "      <td>3.12</td>\n",
       "      <td>3.12</td>\n",
       "      <td>3.09</td>\n",
       "      <td>3.10</td>\n",
       "      <td>857384</td>\n",
       "      <td>0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2</th>\n",
       "      <td>2020/1/6</td>\n",
       "      <td>601988</td>\n",
       "      <td>3.09</td>\n",
       "      <td>3.11</td>\n",
       "      <td>3.07</td>\n",
       "      <td>3.08</td>\n",
       "      <td>1371085</td>\n",
       "      <td>0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>3</th>\n",
       "      <td>2020/1/7</td>\n",
       "      <td>601988</td>\n",
       "      <td>3.08</td>\n",
       "      <td>3.13</td>\n",
       "      <td>3.08</td>\n",
       "      <td>3.11</td>\n",
       "      <td>1565238</td>\n",
       "      <td>0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>4</th>\n",
       "      <td>2020/1/8</td>\n",
       "      <td>601988</td>\n",
       "      <td>3.10</td>\n",
       "      <td>3.10</td>\n",
       "      <td>3.07</td>\n",
       "      <td>3.08</td>\n",
       "      <td>1042788</td>\n",
       "      <td>0</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "</div>"
      ],
      "text/plain": [
       "       date    code  open  high   low  close   volume turnover\n",
       "0  2020/1/2  601988  3.10  3.13  3.09   3.11  1389910        0\n",
       "1  2020/1/3  601988  3.12  3.12  3.09   3.10   857384        0\n",
       "2  2020/1/6  601988  3.09  3.11  3.07   3.08  1371085        0\n",
       "3  2020/1/7  601988  3.08  3.13  3.08   3.11  1565238        0\n",
       "4  2020/1/8  601988  3.10  3.10  3.07   3.08  1042788        0"
      ]
     },
     "execution_count": 10,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "boc_df8 = boc_df7\n",
    "boc_df8.loc[:, 'turnover'] = '0'\n",
    "boc_df8.head()\n"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 11,
   "id": "e7bec5db",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>date</th>\n",
       "      <th>code</th>\n",
       "      <th>open</th>\n",
       "      <th>high</th>\n",
       "      <th>low</th>\n",
       "      <th>close</th>\n",
       "      <th>volume</th>\n",
       "      <th>turnover</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>3</th>\n",
       "      <td>2020/1/7</td>\n",
       "      <td>601988</td>\n",
       "      <td>3.08</td>\n",
       "      <td>3.13</td>\n",
       "      <td>3.08</td>\n",
       "      <td>3.11</td>\n",
       "      <td>1565238</td>\n",
       "      <td>0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>4</th>\n",
       "      <td>2020/1/8</td>\n",
       "      <td>601988</td>\n",
       "      <td>3.10</td>\n",
       "      <td>3.10</td>\n",
       "      <td>3.07</td>\n",
       "      <td>3.08</td>\n",
       "      <td>1042788</td>\n",
       "      <td>0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>5</th>\n",
       "      <td>2020/1/9</td>\n",
       "      <td>601988</td>\n",
       "      <td>3.10</td>\n",
       "      <td>3.10</td>\n",
       "      <td>3.07</td>\n",
       "      <td>3.08</td>\n",
       "      <td>749714</td>\n",
       "      <td>0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>6</th>\n",
       "      <td>2020/1/10</td>\n",
       "      <td>601988</td>\n",
       "      <td>3.08</td>\n",
       "      <td>3.09</td>\n",
       "      <td>3.07</td>\n",
       "      <td>3.08</td>\n",
       "      <td>538335</td>\n",
       "      <td>0</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "</div>"
      ],
      "text/plain": [
       "        date    code  open  high   low  close   volume turnover\n",
       "3   2020/1/7  601988  3.08  3.13  3.08   3.11  1565238        0\n",
       "4   2020/1/8  601988  3.10  3.10  3.07   3.08  1042788        0\n",
       "5   2020/1/9  601988  3.10  3.10  3.07   3.08   749714        0\n",
       "6  2020/1/10  601988  3.08  3.09  3.07   3.08   538335        0"
      ]
     },
     "execution_count": 11,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "boc_df9 = boc_df8.loc[3 : 6]\n",
    "boc_df9\n"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 12,
   "id": "08868996",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>date</th>\n",
       "      <th>code</th>\n",
       "      <th>open</th>\n",
       "      <th>high</th>\n",
       "      <th>low</th>\n",
       "      <th>close</th>\n",
       "      <th>volume</th>\n",
       "      <th>turnover</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>4</th>\n",
       "      <td>2020/1/8</td>\n",
       "      <td>601988</td>\n",
       "      <td>3.10</td>\n",
       "      <td>3.10</td>\n",
       "      <td>3.07</td>\n",
       "      <td>3.08</td>\n",
       "      <td>1042788</td>\n",
       "      <td>0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>5</th>\n",
       "      <td>2020/1/9</td>\n",
       "      <td>601988</td>\n",
       "      <td>3.10</td>\n",
       "      <td>3.10</td>\n",
       "      <td>3.07</td>\n",
       "      <td>3.08</td>\n",
       "      <td>749714</td>\n",
       "      <td>0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>6</th>\n",
       "      <td>2020/1/10</td>\n",
       "      <td>601988</td>\n",
       "      <td>3.08</td>\n",
       "      <td>3.09</td>\n",
       "      <td>3.07</td>\n",
       "      <td>3.08</td>\n",
       "      <td>538335</td>\n",
       "      <td>0</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "</div>"
      ],
      "text/plain": [
       "        date    code  open  high   low  close   volume turnover\n",
       "4   2020/1/8  601988  3.10  3.10  3.07   3.08  1042788        0\n",
       "5   2020/1/9  601988  3.10  3.10  3.07   3.08   749714        0\n",
       "6  2020/1/10  601988  3.08  3.09  3.07   3.08   538335        0"
      ]
     },
     "execution_count": 12,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "boc_df10 = boc_df9.drop([3])\n",
    "boc_df10\n"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 13,
   "id": "6f8b1fa5",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "Int64Index([6], dtype='int64')"
      ]
     },
     "execution_count": 13,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "open_index = boc_df10[boc_df10['open'] == 3.08 ].index\n",
    "open_index\n"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 13,
   "id": "70fbb818",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>您进行金融理财的主要动机是</th>\n",
       "      <th>您的风险承受能力为</th>\n",
       "      <th>您拥有的金融资产（包括定黄金或活期存款或股票或基金或债券或信托和投资型保险等）规模是多少</th>\n",
       "      <th>请问您有以下哪些金融资产</th>\n",
       "      <th>您对贵金属投资等金融基本制度和相关法规的了解程度</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>0</th>\n",
       "      <td>获取资产的稳定增值</td>\n",
       "      <td>不低于收益预期</td>\n",
       "      <td>5000万元以上</td>\n",
       "      <td>基金</td>\n",
       "      <td>不知道</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>1</th>\n",
       "      <td>获取资产的稳定增值</td>\n",
       "      <td>不低于收益预期</td>\n",
       "      <td>5000万元以上</td>\n",
       "      <td>基金</td>\n",
       "      <td>不知道</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2</th>\n",
       "      <td>获取资产的稳定增值</td>\n",
       "      <td>不低于收益预期</td>\n",
       "      <td>5000万元以上</td>\n",
       "      <td>基金</td>\n",
       "      <td>不知道</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "</div>"
      ],
      "text/plain": [
       "  您进行金融理财的主要动机是 您的风险承受能力为 您拥有的金融资产（包括定黄金或活期存款或股票或基金或债券或信托和投资型保险等）规模是多少  \\\n",
       "0     获取资产的稳定增值   不低于收益预期                                     5000万元以上   \n",
       "1     获取资产的稳定增值   不低于收益预期                                     5000万元以上   \n",
       "2     获取资产的稳定增值   不低于收益预期                                     5000万元以上   \n",
       "\n",
       "  请问您有以下哪些金融资产 您对贵金属投资等金融基本制度和相关法规的了解程度  \n",
       "0           基金                      不知道  \n",
       "1           基金                      不知道  \n",
       "2           基金                      不知道  "
      ]
     },
     "execution_count": 13,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "questionnaire_df = pd.read_csv('../dataFiles/questionnaire.csv')\n",
    "questionnaire_df.head(3) \n"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "id": "a7dc5111",
   "metadata": {},
   "outputs": [],
   "source": [
    "questionnaire_df['我们拥有的金融资产（包括定黄金或活期存款或股票或基金或债券或信托和投资型保险等）规模是多少']"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 17,
   "id": "6276bfdf",
   "metadata": {},
   "outputs": [],
   "source": [
    "keys = ['Q{}'.format(i) for i in range(1, 6)]\n",
    "columns_dic = pd.Series(questionnaire_df.columns, index=keys)\n",
    "questionnaire_df.columns = keys\n"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 18,
   "id": "1f2bd317",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>Q1</th>\n",
       "      <th>Q2</th>\n",
       "      <th>Q3</th>\n",
       "      <th>Q4</th>\n",
       "      <th>Q5</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>0</th>\n",
       "      <td>获取资产的稳定增值</td>\n",
       "      <td>不低于收益预期</td>\n",
       "      <td>5000万元以上</td>\n",
       "      <td>基金</td>\n",
       "      <td>不知道</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "</div>"
      ],
      "text/plain": [
       "          Q1       Q2        Q3  Q4   Q5\n",
       "0  获取资产的稳定增值  不低于收益预期  5000万元以上  基金  不知道"
      ]
     },
     "execution_count": 18,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "questionnaire_df.head(1) "
   ]
  },
  {
   "cell_type": "markdown",
   "id": "d0025ee4",
   "metadata": {},
   "source": [
    "## 4.2.7 可视化的作用"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 19,
   "id": "0a0c5296",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>顾客ID</th>\n",
       "      <th>流失</th>\n",
       "      <th>性别</th>\n",
       "      <th>技术支持</th>\n",
       "      <th>月缴费</th>\n",
       "      <th>总缴费</th>\n",
       "      <th>未接通</th>\n",
       "      <th>短信频率</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>0</th>\n",
       "      <td>C0000001</td>\n",
       "      <td>0</td>\n",
       "      <td>Female</td>\n",
       "      <td>0</td>\n",
       "      <td>29.85</td>\n",
       "      <td>29.85</td>\n",
       "      <td>8</td>\n",
       "      <td>5</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>1</th>\n",
       "      <td>C0000002</td>\n",
       "      <td>0</td>\n",
       "      <td>Male</td>\n",
       "      <td>0</td>\n",
       "      <td>56.95</td>\n",
       "      <td>1889.5</td>\n",
       "      <td>0</td>\n",
       "      <td>7</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2</th>\n",
       "      <td>C0000003</td>\n",
       "      <td>1</td>\n",
       "      <td>Male</td>\n",
       "      <td>0</td>\n",
       "      <td>53.85</td>\n",
       "      <td>108.15</td>\n",
       "      <td>10</td>\n",
       "      <td>359</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "</div>"
      ],
      "text/plain": [
       "       顾客ID  流失      性别  技术支持    月缴费     总缴费  未接通  短信频率\n",
       "0  C0000001   0  Female     0  29.85   29.85    8     5\n",
       "1  C0000002   0    Male     0  56.95  1889.5    0     7\n",
       "2  C0000003   1    Male     0  53.85  108.15   10   359"
      ]
     },
     "execution_count": 19,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "customer_df = pd.read_csv('../dataFiles/customerChurn.csv')\n",
    "customer_df.head(3)\n"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 20,
   "id": "7f55dd3c",
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "<class 'pandas.core.frame.DataFrame'>\n",
      "RangeIndex: 1000 entries, 0 to 999\n",
      "Data columns (total 8 columns):\n",
      " #   Column  Non-Null Count  Dtype  \n",
      "---  ------  --------------  -----  \n",
      " 0   顾客ID    1000 non-null   object \n",
      " 1   流失      1000 non-null   int64  \n",
      " 2   性别      1000 non-null   object \n",
      " 3   技术支持    1000 non-null   int64  \n",
      " 4   月缴费     1000 non-null   float64\n",
      " 5   总缴费     1000 non-null   object \n",
      " 6   未接通     1000 non-null   int64  \n",
      " 7   短信频率    1000 non-null   int64  \n",
      "dtypes: float64(1), int64(4), object(3)\n",
      "memory usage: 62.6+ KB\n"
     ]
    }
   ],
   "source": [
    "customer_df.info()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 21,
   "id": "a5262f94",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "0    [8, 0, 10, 4, 13, 7, 6, 9, 25, 9, 3, 0, 2, 3, ...\n",
       "1    [10, 3, 11, 7, 4, 0, 7, 23, 9, 9, 1, 3, 4, 4, ...\n",
       "dtype: object"
      ]
     },
     "execution_count": 21,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "churning = customer_df.流失.unique()\n",
    "box_df = pd.Series(' ', index = churning)\n",
    "for poss in churning:\n",
    "    bMask  = customer_df.流失 == poss\n",
    "    box_df[poss] = customer_df[bMask].未接通.values\n",
    "box_df"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 25,
   "id": "bf5c20f3",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "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W4499ti+xwsXLsxnP/vZYZ97/fXX9z0+5phjOlpXt+m2+3TwwQdnwoQJ2bBhQxYuXDiiaRMWLlyYpLWI2UEHHdSRerq1pm7kPnXWaC0Sts1qrStqrUtrrcOZcfqSJP9USvnVfvtmJXlDktVpfX+HJJnUPtb7fIvxfK11Ua11Qq11r1rr1FrrfgO/knx0wGlnDtauff6UWuvUwV4LAAAA2H4zZ87MwQcfnCRZvnx5lixZMqzzFi9enOXLlydJDjnkkMycOXMrZ4xt3XafJk+enNNPPz1JcsMNN2TFihXDOm/58uW58cYbkySnn356Jk/e1tk1x0ZN3ch96qyuC2iHq5RyZFoLfe2S5Kf9Do1P8kSt9em0RsAmL0xT8PSA7ba87sS0FidLkr9ob79QSvGOAgAAgIZ86EMf6nt84okn5plntrTmd8szzzyTk046qe/5hz/84VGrrZt02316z3vekyTZuHFj3vGOd+T5558fsv3zzz+fc845Jxs3btzs/J29pm7kPnXOmA1o88Io1k/UWvvPKDwpySNbOKcO2G6Li9IahXtbrfWDaU3H8MtJvlVKmTTkmQAAAMCoOOuss/oWvlq5cmUOOOCALF68eNC2ixcvzgEHHNC3aNa0adOyYMGCHVZrk7rtPh111FGZO3dukuTWW2/NvHnz+kbrDrR8+fLMmzcvt956a5Jk7ty5OfLIIztaT7fW1I3cp87pxjlokySllF9P8skkF9Za7x1w7HVJTk6yPMmV/fb/UpKXJbl/lGo6N8kfJ/lFknPau9+V5DVJ3pjkO6WUM2qtD4zG6wMAAACDGzduXJYsWZJZs2Zl/fr1WblyZY488sjMmDEjp512Wvbbb788+uijuf766zcLkSZNmpQlS5Zk3LixPIZt+LrtPpVScu211+b444/P4sWLc+utt+bAAw/MKaeckvnz52evvfbKqlWrsnDhwtx44419oy+POOKIXHvttSllyHXWd5qaupH71DmjHdBuz53+5SRzk8wtpRxda707SUrrv95n2m3+sta6od85c9rbH2zH675IKWVckguS/FmSDUlOq7X+LElqrU+VUt6Y5O+THJXkh6WUv0ryX2utT3ayDgAAAGDLpk+fnvvvvz+HH354HnustZ738uXLc8kllwzaftq0aVmyZEmmT5++I8tsXLfdp56entxxxx0544wzcvPNN2fjxo25/vrrN1uYrL+5c+fm2muvTU/PFpcY2ilr6kbuU2eM1p+HeqcQ2Hs7rvH69vapbB64np3kdUkeS/LlAef8cXv7d8N9kVLKN0sp55ZSXraF47OS3JFWOLs+ybxa66L+bWqtK5Mcm+SatKZY+FiSn5ZS/ryU8tJeSnM7zJ49O3PmzMns2bObLgUAAKAr+b3pxaZPn54VK1bkqquuyiGHHDJom0MPPTRXXXVVVqxY8ZILZ3t1233q6enJTTfdlLvvvjsLFizIhAkTNjs+ceLEvO1tb8vdd9+dm266aYcEfN1YUzdyn7ZfqXV7pmPdwkVL+dMkf5nkySTzktxZa9009Fmbnf+6JLcmmZLkb2utp7f3H5RkaZLJSf5zrfUz/c75QJI/T/KDWuvh7X2nJ/lmkr+qtf5pKeX1Sf4xyd/UWs8qpfQkeTTJbkn27j+XbTtYPS+tqQx2TfJQkv9Ya/3hVmo/Icllac1T2+ufkryz1vr94d6DrbxGTZLR+G8H2+u4447LokWLMmfOnNx5551Nl8NY9tU3Jf/23eTA1ydnfbvpahjj9E0A8NK1bNmy3HXXXXn88cezzz775JhjjsnMmTObLqvrdNt9Wrt2bR5++OGsW7cuPT09OeiggzJ5crPrs3djTd3opXKfeqdoqLVu91wNozXFwT8k2ZRkj/bjjaWUoZcFbKlphaG9UfvGvDCdQZL8VpJd0gpVr0iS9sjXC9MaPftMXpgbNu1rJa0ANknWtrdvK6XMSWu+2klJ/r43nC2lHJzka2mN0i3tGr6Q5IO11qe2+g3Uensp5deSnJ/k/Un2bV9j8Bm3AQAAgFEzc+bMvOUtb2m6jK7Xbfdp8uTJOeyww5ouYzPdWFM3cp9GblQC2lrrfaWU09IKTQ9IsvtIL5Hk/yW5qNZ6T7/rXlNK+W6SX6m1rm/vPr/9OuvTmhu2fxDaO23BpPb2n5P8bZJTkhyUVnD6k7SmL+h9jYdKKUvSCmhvTPLhWuu/jKj4Wp9JclEp5eIkC5L831rr8yO5BgAAAACw8xu1RcJqrTemFXB2+roPpTXdQO/zC0sp45NcNzBIrbV+MckX+z2vSU4fxst8IMkVIw1mB6n1mf6vDwAAAADQ36gFtDtSrfVjHb7eU0m2K5wFAAAAANiaUVkkjNFlkTC6We8k2UkyZ86cBithrPvc7Psze8qTWbp6j5y3dFbT5TDGLV26NGvWrLFIGAAA0BFjYZEwgCxatKjpEhjDVr9iUjJlfFavXu29RMf09PQ0XQIAAMBmBLTAqDGClu3x+PhlWbr66Tw+fvfMmTOz6XLYCfT09OSjH/1o02UAAABsxhQHY5ApDgAAAACgOZ2c4mDcdlcDAAAAAMA2EdACAAAAADREQAsAAAAA0BABLQAAAABAQwS0AAAAAAANEdACAAAAADREQAsAAAAA0BABLQAAAABAQwS0AAAAAAANEdACAAAAADREQAsAAAAA0BABLQAAAABAQwS0AAAAAAANEdACAAAAADREQAsAAAAA0BABLQAAAABAQwS0AAAAAAANEdACAAAAADREQAsAAAAA0BABLQAAAABAQwS0AAAAAAANEdACAAAAADREQAsAAAAA0BABLQAAAABAQwS0AAAAAAANEdACAAAAADREQAsAAAAA0BABLQAAAABAQwS0AAAAAAANEdACAAAAADREQAsAAAAA0BABLQAAAABAQwS0AAAAAAANEdACAAAAADREQAsAAAAA0BABLQAAAABAQwS0AAAAAAANEdACAAAAADREQAsAAAAA0BABLQAAAABAQwS0AAAAAAANEdACAAAAADREQAsAAAAA0BABLQAAAABAQwS0AAAAAAANEdACAAAAADREQAsAAAAA0BABLQAAAABAQwS0AAAAAAANEdACAAAAADREQAsAAAAA0BABLQAAAABAQwS0AAAAAAANEdACAAAAADREQAsAAAAA0BABLQAAAABAQwS0AAAAAAANEdACAAAAADREQAsAAAAA0BABLQAAAABAQwS0AAAAAAANEdACAAAAADREQAsAAAAA0BABLQAAAABAQwS0AAAAAAANEdACAAAAADREQAsAAAAA0BABLQAAAABAQwS0AAAAAAANEdACAAAAADREQAsAAAAA0BABLQAAAABAQwS0AAAAAAANEdACAAAAADREQAsAAAAA0BABLQAAAABAQwS0AAAAAAANEdACAAAAADREQAsAAAAA0BABLQAAAABAQwS0AAAAAAANEdACAAAAADREQAsAAAAA0BABLQAAAABAQwS0AAAAAAANEdACAAAAADREQAsAAAAA0BABLQAAAABAQwS0AAAAAAANEdACAAAAADREQAsAAAAA0BABLQAAAABAQwS0AAAAAAANEdACAAAAADREQAsAAAAA0BABLQAAAABAQwS0AAAAAAANEdACAAAAADREQAsAAAAA0BABLQAAAABAQwS0AAAAAAANEdACAAAAADREQAsAAAAA0BABLQAAAABAQwS0AAAAAAANEdACAAAAADREQAsAAAAA0BABLQAAAABAQwS0AAAAAAANEdACAAAAADREQAsAAAAA0BABLQAAAABAQwS0AAAAAAANEdACAAAAADREQAsAAAAA0BABLQAAAABAQwS0AAAAAAANEdACAAAAADREQAsAAAAA0BABLQAAAABAQwS0AAAAAAANEdACAAAAADREQAsAAAAA0BABLQAAAABAQwS0AAAAAAANEdACAAAAADREQAsAAAAA0BABLQAAAABAQwS0AAAAAAANEdACAAAAADREQAsAAAAA0BABLQAAAABAQwS0AAAAAAANEdACAAAAADREQAsAAAAA0BABLQAAAABAQwS0AAAAAAANEdACAAAAADREQAsAAAAA0BABLQAAAABAQwS0AAAAAAANEdACAAAAADREQAsAAAAA0BABLQAAAABAQwS0AAAAAAANEdACAAAAADREQAsAAAAA0BABLQAAAABAQwS0AAAAAAANEdACAAAAADREQAsAAAAA0BABLQAAAABAQwS0AAAAAAANEdACAAAAADREQAsAAAAA0BABLQAAAABAQwS0AAAAAAANEdACAAAAADREQAsAAAAA0BABLQAAAABAQwS0AAAAAAANEdACAAAAADREQAsAAAAA0BABLQAAAABAQwS0AAAAAAANEdACAAAAADREQAsAAAAA0BABLQAAAABAQwS0AAAAAAANGd90AcC2u+eee3LhhRdm3bp1TZfCGHfuocty6B5P54End8+lD8xsuhx2Aj09PfnIRz6So446qulSAAAAupqAFsawCy+8MLfcckvTZbAT+PgrJmX2lPFZvXp1Fi16sOly2IncfPPNTZcAAADQ1QS0MIb1jpzdc889M3v27GaLYUybMuX+JE9mypQpmTPnyKbLYYxbunRp1qxZY3Q/AADAMAhoYScwe/bs3HnnnU2XwVj21Tcl//bdzD5sdu783LebroYx7rjjjsuiRYuaLgMAAGBMsEgYAAAAAEBDBLQAAAAAAA1pLKAtpbyqlDK7lNIzyq/zxlLKTaWUjk/nUErZYzSuCwAAAAC8NDQ5gva/JflBkm1ajaaUckUp5eRhNH13kt9Ncv62vM5WXJDk2VLKZaNwbQAAAABgJ9dkQPv0gO2wlVJOTfKuJDeXUq4upewxRPP3JFmb5GOllFeMuMrW6+1bSnn1IIc2JClJVm7LdRnaeeedl+OOOy7nnXde06UAAAAk6a7fU6644oq88pWvzD777JNXvvKVueKKK5ouKffee2/e//73Z/78+Xn/+9+fe++9t+mScvHFF+fAAw/MnnvumQMPPDAXX3xx0yV15X265ZZb8ju/8zuZPXt2fud3fie33HJLo/UsW7Ys1113XS699NJcd911WbZsWaP1qGn41q5dm6VLl+Yf//Efs3Tp0qxdu7bpkrpfrbWRryT/K0lNcuQ2nv9HaYW7NcmPkhyc5PEky5M8nOT/Jflx+2tdu91j/fb9OMlP2m0fS3LQEK91TpJNSa4esP+C9nX/aAffu9r6T7dzmzNnTk1S58yZ03QpXcs9omOuOqnWj01ubWE76ZsA2Jk1/e/c+vXr64wZM2rv74WDfc2YMaOuX79+h9X03HPP1QULFtTx48cPWs/48ePrggUL6nPPPbfDanrqqafq1KlTh7xPU6dOrU899dQOq6kb79OGDRvqMcccM+R9OuaYY+qGDRt2SD0bN26sV155ZT344IMHreWQQw6pV155Zd24ceMOqUdNw7dp06b6/e9/v5555pl1woQJm9UzYcKEumDBgvr973+/btq0aYfVNNr65XPbnfWN2gjaUkpPKWVSKWWXLTSpA7b9z92tff4+W7p+rfULSY5L8kReGMX68iTTk0xLMjnJ1CT7JVmTVnD7XJI9+n31JJnS/hrqXsxrv8ZNA/ZvbG9HPAoYAAAARuIrX/lKJk2alOXLlw/Zbvny5Zk0aVK+8pWvjHpNS5YsyW677Zarr746zz///KBtnn/++Vx99dXZbbfdsmTJklGv6bLLLsvLXvayrFw59IddV65cmZe97GW57LLRn7WwG+/T7bffngkTJuSuu+4ast1dd92VCRMm5Pbbbx/VelasWJHp06fn7LPPzkMPPTRomwcffDBnn312pk+fnhUrVoxqPWoavnXr1mXevHk5+uijc80112TDhg2bHd+wYUOuvvrqHH300Zk3b17WrVs36jWNNaO5wNWXk5yeJKWUodrdO9TxUsqutdZBe69a692llDmth3VdKWVqkjW11ufa534jyRuSvLPW+u1t+SZKKQckOTHJ/0lyw8AS2tuNAQAAgFHyla98JWefffaL9u+6666ZOHFinnnmmTz33HObHett//a3v31UalqyZEle+9rXbrZv3LhxOeyww7Lvvvvm5z//eX74wx9m06ZNSVqf4H3ta1+b++67L4cffvio1HTZZZfl3HPPfdH+XXbZJbvttlueffbZbNy4+a/wve3f+973jkpN3Xifbr/99px44okv2j916tRMmTIlq1evflHAfeKJJ+a2227LCSec0PF6VqxYkVmzZmX9+vV9+2bMmJH58+dn2rRpeeyxx7Jw4cK+P0489thjmTVrVu6///5Mnz694/WoafjWrVuX448/PosXL07S+n/t1FNPzfz587PXXntl1apVWbhwYW644YZs3LgxN998c44//vjccccd6enpGZWaxqRODMMd7CvJXyW5J8miJHck+f8GfK1KK+C8e8D+f0jy3SSL0wpFd9nG1z8qrWkJnkjyqn77D0xy2Aiuc3G7ziey+fQIP05r1G5N8sggx+5P8rMkP0/yax2+t6Y4oNbqHtFBpjigg/RNAOzMmvh3bv369S/6CPOZZ545aNu3vvWtL2o7GtMdPPfcc7WU0vcapZR67bXXDtr26quvflHb0fgY/1NPPfWi7/3Nb37zoG1POeWUF7UdjekOuvE+bdiw4UXf+yc/+clB237sYx97UdtOT3ewcePGOm3atM2mnrjvvvsGbXvvvfduNnXFtGnTRuVj/Goank2bNtW5c+f2vc5JJ51Uly9fPmjbZcuW1ZNOOqmv7dy5c8f8dAf98rntz/o6cZFteuHkzvY3csQ2nPuOJD1DHJ+U1ry0G5Oc0G//PkmWtQPVg4fxOq9I8kxaUyM8OshX79y2qwc59niSJ9vnHtbheyegpdbqHtFBAlo6SN8EwM6siX/nBs45e//99w/Z/v7779+s/cyZMzte04IFCzYLEletWjVk+1WrVm0WPp511lkdr2ngnLM/+tGPhmz/ox/9aLP2++67b8dr6sb7NHDO2UceeWTI9o888shm7Y899tiO1nPllVduFjo+/fTTQ7Z/+umnN/tvfdVVV3W0HjUN3/e///3Nwtmt/UHhueee2yykvfvuuzte047UyYB21OagHS2llJOTfCnJP5VS/t0Wmn0hyauSfLDW2jdJSq318SR/nda8tLeXUvbdyst9PsmEJJ+ste438Cut0bVJ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\n",
      "text/plain": [
       "<Figure size 1620x540 with 1 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    }
   ],
   "source": [
    "import matplotlib.pyplot as plt\n",
    "\n",
    "\n",
    "plt.boxplot(box_df, vert = False)\n",
    "plt.yticks([1, 2],['未流失', '已流失'])\n",
    "plt.show()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 34,
   "id": "9d443f49",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "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AAAAAEAAJGcBAAAAAAAAIACSswAAAAAAAAAQAMlZAAAAAAAAAAiA5CwAAAAAAAAABEByFgAAAAAAAAACIDkLAAAAAAAAAAGQnAUAAAAAAACAAEjOAgAAAAAAAEAAJGcBAAAAAAAAIACSswAAAAAAAAAQAMlZAAAAAAAAAAiA5CwAAAAAAAAABEByFgAAAAAAAAACIDkLAAAAAAAAAAGQnAUAAAAAAACAAEjOAgAAAAAAAEAAJGcBAAAAAAAAIACSswAAAAAAAAAQAMlZAAAAAAAAAAiA5CwAAAAAAAAABEByFgAAAAAAAAACIDkLAAAAAAAAAAGQnAUAAAAAAACAAEjOAgAAAAAAAEAAJGcBAAAAAAAAIACSswAAAAAAAAAQAMlZAAAAAAAAAAiA5CwAAAAAAAAABEByFgAAAAAAAAACIDkLAAAAAAAAAAGQnAUAAAAAAACAAEjOAgAAAAAAAEAAJGcBAAAAAAAAIACSswAAAAAAAAAQAMlZAAAAAAAAAAiA5CwAAAAAAAAABEByFgAAAAAAAAACIDkLAAAAAAAAAAGQnAUAAAAAAACAAEjOAgAAAAAAAEAAJGcBAAAAAAAAIACSswAAAAAAAAAQAMlZAAAAAAAAAAiA5CwAAAAAAAAABEByFgAAAAAAAAACIDkLAAAAAAAAAAGQnAUAAAAAAACAAEjOAgAAAAAAAEAAJGcBAAAAAAAAIACSswAAAAAAAAAQAMlZAAAAAAAAAAiA5CwAAAAAAAAABEByFgAAAAAAAAACIDkLAAAAAAAAAAGQnAUAAAAAAACAAEjOAgAAAAAAAEAAJGcBAAAAAAAAIACSswAAAAAAAAAQAMlZAAAAAAAAAAiA5CwAAAAAAAAABEByFgAAAAAAAAACIDkLAAAAAAAAAAGQnAUAAAAAAACAAEjOAgAAAAAAAEAAJGcBAAAAAAAAIACSswAAAAAAAAAQAMlZAAAAAAAAAAiA5CwAAAAAAAAABEByFgAAAAAAAAACIDkLAAAAAAAAAAGQnAUAAAAAAACAAEjOAgAAAAAAAEAAJGcBAAAAAAAAIACSswAAAAAAAAAQAMlZAAAAAAAAAAiA5CwAAAAAAAAABEByFgAAAAAAAAACIDkLAAAAAAAAAAGQnAUAAAAAAACAAEjOAgAAAAAAAEAAJGcBAAAAAAAAIACSswAAAAAAAAAQAMlZ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d8raxskwffr0zN9V8bLp9ije7xu9PZL6ebUxU7UF9HnFfQ90Fyu69coVXWXweUnNqelJ8Pm11LihksZIOkrScZJ+Hs+zRtJhOet5XzzPE5JG5Mzzd/E85/bztksav64aJaBqlHo0BP5Q6MZ+AZTW22/ky1/+ckHAU4msgK2pqamiMvKC6UaoR7V1mDp1akVlFF/B3ChllJsoT1xwwQUuRU/EbWtrq2jZYrUKdGsxELMOnJiV5GxjIVZDtdra2gqeup7elzZt2pSbVFu2bFnBOek3v/lN97Sjjjoqd7niofjqwHIfnNXU1FTQ3cLZZ59d8D3yripNzp/puqfrcN555+Wea9PbKjl/lztver6kbkkZbW1tJa+CTeZLb5ujjjrK29raykqcLlu2zI888siy2yS9jdva2vz1r399r/Oed955BfOdd955Bdsnr57F7TF8+PAe27hctYyR8tqx1LRy27xUuxXXvXibJmWW0+al2qO5uTmzXRu1PZL6eZUxU80fCGZmH5V0iaJbqzrjimZ5afz672a2L6soSU2KnoLb5O4vkSR3/w8z+2NJ10p6v6QrFPWt9Wkz+2dJ746XX2pmOyWNkHK/56mSbjWzN8UbNe0YRU/Qfbe7Z9VPksbGr7typvdJ/J+K4J544glJ0vr16zV//vxg9Vi/fn1BfQCpcfZPoFH1duy87rrrut8PGzasorKHDh3a/XCOxMknn1xRGSeeeKIefvjhgnFDhgypqIysB3xUW4+JEydWtPz48eO7H1CSWL58eUVlXHDBBbr++usbroxKl1++fLm++93vav/+/Xrqqacqbov+RsxavUaLWXft2lXwGWERq6Fau3bt0v79+7s/p3/bDzzwQO5yy5cvl7t3n5N++MMfdk+bP3++vvnNb5a1/lmzZhV8Pu644woeoJWnq6tLp5xyiu6++25JUWyR/h55Dy9Lzp/p8+nMmTO7p8+ZM0fTp0/PPNdu3Lixex3J+TvvvFw8b3pbJZIyNm7cWPJha8l8s2bN6t428+fP18aNG8t6wNTy5cs1bNgwfetb3+p13rSuri499dRTmjNnTkH7ZpkzZ47cvXu+OXPmdK/7u9/9bm49i9sjvR0aIUbKavO8aeW2eal2K657etun983eLF++XE899VRue+zfv19z587t0a6N3h7VqnlyVlFg2SJpmKQD6hnoHibpiNTn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AAAGs1rFrE01qQ0AAAAAAAAAoCIkZwEAAAAAAAAgAJKzAAAAAAAAABAAyVkAAAAAAAAACIDkLAAAAAAAAAAEQHIWAAAAAAAAAAIgOQsAAAAAAAAAAZCcBQAAAAAAAIAASM4CAAAAAAAAQAAkZwEAAAAAAAAgAJKzAAAAAAAAABAAyVkAAAAAAAAACIDkLAAAAAAAAAAEQHIWAAAAAAAAAAIgOQsAAAAAAAAAAZCcBQAAAAAAAIAASM4CAAAAAAAAQAAkZwEAAAAAAAAgAJKzAAAAAAAAABAAyVkAAAAAAAAACIDkLAAAAAAAAAAEQHIWAAAAAAAAAAIgOQsAAAAAAAAAAZCcBQAAAAAAAIAASM4CAAAAAAAAQAAkZwEAAAAAAAAgAJKzAAAAAAAAABAAyVkAAAAAAAAACIDkLAAAAAAAAAAEQHIWAAAAAAAAAAIgOQsAAAAAAAAAAZCcBQAAAAAAAIAASM4CAAAAAAAAQAAkZwEAAAAAAAAgAJKzAAAAAAAAABAAyVkAAAAAAAAACIDkLAAAAAAAAAAEQHIWAAAAAAAAAAIgOQsAAAAAAAAAAZCcBQAAAAAAAIAASM4CAAAAAAAAQAAkZwEAAAAAAAAgAJKzAAAAAAAAABAAyVkAAAAAAAAACIDkLAAAAAAAAAAEQHIWAAAAAAAAAAIgOQsAAAAAAAAAAZCcBQAAAAAAAIAASM4CAAAAAAAAQAAkZwEAAAAAAAAgAJKzAAAAAAAAABAAyVkAAAAAAAAACIDkLAAAAAAAAAAEQHIWAAAAAAAAAAIgOQsAAAAAAAAAAZCcBQAAAAAAAIAASM4CAAAAAAAAQAAkZwEAAAAAAAAgAJKzAAAAAAAAABAAyVkAAAAAAAAACIDkLAAAAAAAAAAEQHIWAAAAAAAAAAIgOQsAAAAAAAAAAZCcBQAAAAAAAIAASM4CAAAAAAAAQAAkZwEAAAAAAAAgAJKzAAAAAAAAABAAyVkAAAAAAAAACIDkLAAAAAAAAAAEQHIWAAAAAAAAAAIgOQsAAAAAAAAAAZCcBQAAAAAAAIAASM4CAAAAAAAAQAAkZwEAAAAAAAAgAJKzAAAAAAAAABAAyVkAAAAAAAAACIDkLAAAAAAAAAAEQHIWAAAAAAAAAAIgOQsAAAAAAAAAAZCcBQAAAAAAAIAASM4CAAAAAAAAQAAkZwEAAAAAAAAg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\n",
      "text/plain": [
       "<Figure size 1620x540 with 2 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    }
   ],
   "source": [
    "select_columns = ['未接通', '短信频率']\n",
    "churning = customer_df.流失.unique()\n",
    "plt.figure(figsize = (9, 3))\n",
    "for i, sc in enumerate(select_columns):\n",
    "    for poss in churning:\n",
    "        bMask = customer_df.流失 == poss\n",
    "        box_df[poss] = customer_df[bMask][sc].values\n",
    "    plt.subplot(1, 2, i+1)\n",
    "    plt.boxplot(box_df, vert = False)\n",
    "    plt.yticks([1, 2], ['未流失', '已流失'])\n",
    "    plt.title(sc)\n",
    "plt.show()"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "298d134d",
   "metadata": {},
   "source": [
    "## 4.2.8 数据类型变换"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 35,
   "id": "bae85cbc",
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "<class 'pandas.core.frame.DataFrame'>\n",
      "RangeIndex: 734 entries, 0 to 733\n",
      "Data columns (total 6 columns):\n",
      " #   Column  Non-Null Count  Dtype  \n",
      "---  ------  --------------  -----  \n",
      " 0   date    734 non-null    object \n",
      " 1   open    734 non-null    float64\n",
      " 2   high    734 non-null    float64\n",
      " 3   low     734 non-null    float64\n",
      " 4   close   733 non-null    float64\n",
      " 5   volume  734 non-null    int64  \n",
      "dtypes: float64(4), int64(1), object(1)\n",
      "memory usage: 34.5+ KB\n"
     ]
    }
   ],
   "source": [
    "# 显示数据类型\n",
    "boc_df3.info()\n",
    "# 数据类型的变换（新增列）\n",
    "boc_df3['open2'] = boc_df3['open'].astype(object)\n",
    "# 数据类型的变换\n",
    "boc_df3['open'] = boc_df3['open'].astype(object)   # 变换为字符串\n",
    "boc_df3['open'] = boc_df3['open'].astype(str)      # 变换为字符串\n",
    "boc_df3['open'] = boc_df3['open'].astype(float)    # 变换为浮点\n",
    "boc_df3['open'] = boc_df3['open'].astype(int)      # 变换为整数\n"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "42c21d0f",
   "metadata": {},
   "source": [
    "## 4.3.4 检测缺失值"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 36,
   "id": "4c0fd1da",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>您进行金融理财的主要动机</th>\n",
       "      <th>您的风险承受能力</th>\n",
       "      <th>您拥有的金融资产规模</th>\n",
       "      <th>您有哪些金融资产</th>\n",
       "      <th>您对金融制度法规的了解程度</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>0</th>\n",
       "      <td>NaN</td>\n",
       "      <td>不低于收益预期</td>\n",
       "      <td>5000万元以上</td>\n",
       "      <td>基金</td>\n",
       "      <td>不知道</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>1</th>\n",
       "      <td>获取资产的稳定增值</td>\n",
       "      <td>NaN</td>\n",
       "      <td>5000万元以上</td>\n",
       "      <td>基金</td>\n",
       "      <td>不知道</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2</th>\n",
       "      <td>获取资产的稳定增值</td>\n",
       "      <td>不低于收益预期</td>\n",
       "      <td>5000万元以上</td>\n",
       "      <td>基金</td>\n",
       "      <td>NaN</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>3</th>\n",
       "      <td>获取资产的稳定增值</td>\n",
       "      <td>不低于收益预期</td>\n",
       "      <td>NaN</td>\n",
       "      <td>基金</td>\n",
       "      <td>不知道</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>4</th>\n",
       "      <td>获取资产的稳定增值</td>\n",
       "      <td>不低于收益预期</td>\n",
       "      <td>5000万元以上</td>\n",
       "      <td>基金</td>\n",
       "      <td>不知道</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "</div>"
      ],
      "text/plain": [
       "  您进行金融理财的主要动机 您的风险承受能力 您拥有的金融资产规模 您有哪些金融资产 您对金融制度法规的了解程度\n",
       "0          NaN  不低于收益预期   5000万元以上       基金           不知道\n",
       "1    获取资产的稳定增值      NaN   5000万元以上       基金           不知道\n",
       "2    获取资产的稳定增值  不低于收益预期   5000万元以上       基金           NaN\n",
       "3    获取资产的稳定增值  不低于收益预期        NaN       基金           不知道\n",
       "4    获取资产的稳定增值  不低于收益预期   5000万元以上       基金           不知道"
      ]
     },
     "execution_count": 36,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "que_df = pd.read_csv('../dataFiles/missingValues_NaN.csv')\n",
    "que_df.head()\n"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 38,
   "id": "b76b2e87",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>close</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>count</th>\n",
       "      <td>733.000000</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>mean</th>\n",
       "      <td>2.916317</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>std</th>\n",
       "      <td>0.109183</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>min</th>\n",
       "      <td>2.740000</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>25%</th>\n",
       "      <td>2.830000</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>50%</th>\n",
       "      <td>2.890000</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>75%</th>\n",
       "      <td>3.010000</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>max</th>\n",
       "      <td>3.260000</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "</div>"
      ],
      "text/plain": [
       "            close\n",
       "count  733.000000\n",
       "mean     2.916317\n",
       "std      0.109183\n",
       "min      2.740000\n",
       "25%      2.830000\n",
       "50%      2.890000\n",
       "75%      3.010000\n",
       "max      3.260000"
      ]
     },
     "execution_count": 38,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "boc_df7 = boc_df.loc[:,df.columns.isin(['close'])]\n",
    "boc_df7.describe()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 40,
   "id": "ec83a8eb",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>代码</th>\n",
       "      <th>名称</th>\n",
       "      <th>最高</th>\n",
       "      <th>最低</th>\n",
       "      <th>换手率</th>\n",
       "      <th>量比</th>\n",
       "      <th>市盈率</th>\n",
       "      <th>成交量</th>\n",
       "      <th>昨收</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>0</th>\n",
       "      <td>301128</td>\n",
       "      <td>强瑞技术</td>\n",
       "      <td>30.84</td>\n",
       "      <td>27.38</td>\n",
       "      <td>11.50</td>\n",
       "      <td>9.47</td>\n",
       "      <td>43.56</td>\n",
       "      <td>31341.0</td>\n",
       "      <td>25.70</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>1</th>\n",
       "      <td>300616</td>\n",
       "      <td>尚品宅配</td>\n",
       "      <td>23.20</td>\n",
       "      <td>19.82</td>\n",
       "      <td>7.79</td>\n",
       "      <td>4.71</td>\n",
       "      <td>-114.92</td>\n",
       "      <td>101372.0</td>\n",
       "      <td>19.88</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2</th>\n",
       "      <td>300894</td>\n",
       "      <td>火星人</td>\n",
       "      <td>30.95</td>\n",
       "      <td>27.10</td>\n",
       "      <td>8.62</td>\n",
       "      <td>6.06</td>\n",
       "      <td>40.66</td>\n",
       "      <td>97016.0</td>\n",
       "      <td>25.79</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>3</th>\n",
       "      <td>300614</td>\n",
       "      <td>百川畅银</td>\n",
       "      <td>27.48</td>\n",
       "      <td>23.99</td>\n",
       "      <td>7.58</td>\n",
       "      <td>3.63</td>\n",
       "      <td>62.78</td>\n",
       "      <td>67425.0</td>\n",
       "      <td>23.91</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>4</th>\n",
       "      <td>688625</td>\n",
       "      <td>呈和科技</td>\n",
       "      <td>54.98</td>\n",
       "      <td>48.81</td>\n",
       "      <td>0.73</td>\n",
       "      <td>4.58</td>\n",
       "      <td>38.15</td>\n",
       "      <td>5914.0</td>\n",
       "      <td>49.33</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>...</th>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>5095</th>\n",
       "      <td>2475</td>\n",
       "      <td>立讯精密</td>\n",
       "      <td>31.22</td>\n",
       "      <td>28.37</td>\n",
       "      <td>2.56</td>\n",
       "      <td>5.40</td>\n",
       "      <td>23.66</td>\n",
       "      <td>1820306.0</td>\n",
       "      <td>31.52</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>5096</th>\n",
       "      <td>2095</td>\n",
       "      <td>生 意 宝</td>\n",
       "      <td>29.18</td>\n",
       "      <td>27.00</td>\n",
       "      <td>18.74</td>\n",
       "      <td>0.92</td>\n",
       "      <td>297.13</td>\n",
       "      <td>471796.0</td>\n",
       "      <td>30.00</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>5097</th>\n",
       "      <td>600187</td>\n",
       "      <td>国中水务</td>\n",
       "      <td>3.69</td>\n",
       "      <td>3.23</td>\n",
       "      <td>19.91</td>\n",
       "      <td>1.85</td>\n",
       "      <td>-28.47</td>\n",
       "      <td>3213593.0</td>\n",
       "      <td>3.59</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>5098</th>\n",
       "      <td>153</td>\n",
       "      <td>丰原药业</td>\n",
       "      <td>12.20</td>\n",
       "      <td>12.20</td>\n",
       "      <td>2.76</td>\n",
       "      <td>0.14</td>\n",
       "      <td>24.02</td>\n",
       "      <td>85951.0</td>\n",
       "      <td>13.56</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>5099</th>\n",
       "      <td>300309</td>\n",
       "      <td>*ST吉艾</td>\n",
       "      <td>1.15</td>\n",
       "      <td>1.15</td>\n",
       "      <td>2.53</td>\n",
       "      <td>0.61</td>\n",
       "      <td>-1.99</td>\n",
       "      <td>211716.0</td>\n",
       "      <td>1.44</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "<p>5100 rows × 9 columns</p>\n",
       "</div>"
      ],
      "text/plain": [
       "          代码     名称     最高     最低    换手率    量比     市盈率        成交量     昨收\n",
       "0     301128   强瑞技术  30.84  27.38  11.50  9.47   43.56    31341.0  25.70\n",
       "1     300616   尚品宅配  23.20  19.82   7.79  4.71 -114.92   101372.0  19.88\n",
       "2     300894    火星人  30.95  27.10   8.62  6.06   40.66    97016.0  25.79\n",
       "3     300614   百川畅银  27.48  23.99   7.58  3.63   62.78    67425.0  23.91\n",
       "4     688625   呈和科技  54.98  48.81   0.73  4.58   38.15     5914.0  49.33\n",
       "...      ...    ...    ...    ...    ...   ...     ...        ...    ...\n",
       "5095    2475   立讯精密  31.22  28.37   2.56  5.40   23.66  1820306.0  31.52\n",
       "5096    2095  生 意 宝  29.18  27.00  18.74  0.92  297.13   471796.0  30.00\n",
       "5097  600187   国中水务   3.69   3.23  19.91  1.85  -28.47  3213593.0   3.59\n",
       "5098     153   丰原药业  12.20  12.20   2.76  0.14   24.02    85951.0  13.56\n",
       "5099  300309  *ST吉艾   1.15   1.15   2.53  0.61   -1.99   211716.0   1.44\n",
       "\n",
       "[5100 rows x 9 columns]"
      ]
     },
     "execution_count": 40,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "A_share_df = pd.read_csv('../dataFiles/A_share.csv')\n",
    "A_share_df\n"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 41,
   "id": "95403fed",
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "<class 'pandas.core.frame.DataFrame'>\n",
      "RangeIndex: 5100 entries, 0 to 5099\n",
      "Data columns (total 9 columns):\n",
      " #   Column  Non-Null Count  Dtype  \n",
      "---  ------  --------------  -----  \n",
      " 0   代码      5100 non-null   int64  \n",
      " 1   名称      5100 non-null   object \n",
      " 2   最高      4901 non-null   float64\n",
      " 3   最低      4901 non-null   float64\n",
      " 4   换手率     5100 non-null   float64\n",
      " 5   量比      4901 non-null   float64\n",
      " 6   市盈率     4907 non-null   float64\n",
      " 7   成交量     4901 non-null   float64\n",
      " 8   昨收      5095 non-null   float64\n",
      "dtypes: float64(7), int64(1), object(1)\n",
      "memory usage: 358.7+ KB\n"
     ]
    }
   ],
   "source": [
    "A_share_df.info()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 42,
   "id": "861ece8f",
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "缺失值的数量:\n",
      "代码:0\n",
      "名称:0\n",
      "最高:199\n",
      "最低:199\n",
      "换手率:0\n",
      "量比:199\n",
      "市盈率:193\n",
      "成交量:199\n",
      "昨收:5\n"
     ]
    }
   ],
   "source": [
    "print('缺失值的数量:') \n",
    "for column in A_share_df.columns:\n",
    "    n_MV = sum(A_share_df[column].isna()) \n",
    "    print('{}:{}'.format(column, n_MV))\n"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 43,
   "id": "18a5a075",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "(5100, 9)"
      ]
     },
     "execution_count": 43,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "A_share_df.shape"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 44,
   "id": "fb71198a",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "2.84    45\n",
       "2.85    42\n",
       "2.83    41\n",
       "2.86    35\n",
       "2.87    33\n",
       "Name: close, dtype: int64"
      ]
     },
     "execution_count": 44,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "close_count = boc_df['close'].value_counts()\n",
    "close_count.head(5)\n"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 45,
   "id": "5a54ba25",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "F    3339\n",
       "M    1720\n",
       "Name: gender, dtype: int64"
      ]
     },
     "execution_count": 45,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "homeCredit_df = pd.read_csv('../dataFiles/homeCredit.csv')\n",
    "gender_count = homeCredit_df['gender'].value_counts()\n",
    "gender_count\n"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 46,
   "id": "a7d28b19",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "date         1\n",
       "open         3\n",
       "high         6\n",
       "low          9\n",
       "close        7\n",
       "volume      11\n",
       "turnover     1\n",
       "dtype: int64"
      ]
     },
     "execution_count": 46,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "missingVal = pd.read_csv('../dataFiles/boc_missingVal.csv')\n",
    "missingVal.shape[0] - missingVal.count()\n"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 47,
   "id": "40c1c9b5",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "False    727\n",
       "True       7\n",
       "Name: close, dtype: int64"
      ]
     },
     "execution_count": 47,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "missingVal['close'].isnull().value_counts()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 48,
   "id": "da1fb870",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>date</th>\n",
       "      <th>open</th>\n",
       "      <th>high</th>\n",
       "      <th>low</th>\n",
       "      <th>close</th>\n",
       "      <th>volume</th>\n",
       "      <th>turnover</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>1</th>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>3</th>\n",
       "      <td>2020/1/7</td>\n",
       "      <td>3.08</td>\n",
       "      <td>3.13</td>\n",
       "      <td>3.08</td>\n",
       "      <td>NaN</td>\n",
       "      <td>1565238.0</td>\n",
       "      <td>582835392.0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>34</th>\n",
       "      <td>2020/2/27</td>\n",
       "      <td>2.99</td>\n",
       "      <td>3.01</td>\n",
       "      <td>2.98</td>\n",
       "      <td>NaN</td>\n",
       "      <td>680800.0</td>\n",
       "      <td>245597674.0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>43</th>\n",
       "      <td>2020/3/11</td>\n",
       "      <td>2.99</td>\n",
       "      <td>3.01</td>\n",
       "      <td>2.97</td>\n",
       "      <td>NaN</td>\n",
       "      <td>906479.0</td>\n",
       "      <td>326330000.0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>48</th>\n",
       "      <td>2020/3/18</td>\n",
       "      <td>2.94</td>\n",
       "      <td>2.95</td>\n",
       "      <td>2.89</td>\n",
       "      <td>NaN</td>\n",
       "      <td>835101.0</td>\n",
       "      <td>294794336.0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>58</th>\n",
       "      <td>2020/4/1</td>\n",
       "      <td>2.88</td>\n",
       "      <td>2.90</td>\n",
       "      <td>2.87</td>\n",
       "      <td>NaN</td>\n",
       "      <td>661603.0</td>\n",
       "      <td>230970402.0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>63</th>\n",
       "      <td>2020/4/9</td>\n",
       "      <td>2.89</td>\n",
       "      <td>2.89</td>\n",
       "      <td>2.88</td>\n",
       "      <td>NaN</td>\n",
       "      <td>358581.0</td>\n",
       "      <td>125252988.0</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "</div>"
      ],
      "text/plain": [
       "         date  open  high   low  close     volume     turnover\n",
       "1         NaN   NaN   NaN   NaN    NaN        NaN          NaN\n",
       "3    2020/1/7  3.08  3.13  3.08    NaN  1565238.0  582835392.0\n",
       "34  2020/2/27  2.99  3.01  2.98    NaN   680800.0  245597674.0\n",
       "43  2020/3/11  2.99  3.01  2.97    NaN   906479.0  326330000.0\n",
       "48  2020/3/18  2.94  2.95  2.89    NaN   835101.0  294794336.0\n",
       "58   2020/4/1  2.88  2.90  2.87    NaN   661603.0  230970402.0\n",
       "63   2020/4/9  2.89  2.89  2.88    NaN   358581.0  125252988.0"
      ]
     },
     "execution_count": 48,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "missingVal.loc[missingVal['close'].isnull()]"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "9ab3a7b6",
   "metadata": {},
   "source": [
    "## 4.3.5 处理缺失值"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 49,
   "id": "9fad4fec",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>date</th>\n",
       "      <th>open</th>\n",
       "      <th>high</th>\n",
       "      <th>low</th>\n",
       "      <th>close</th>\n",
       "      <th>volume</th>\n",
       "      <th>turnover</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>0</th>\n",
       "      <td>2020/1/2</td>\n",
       "      <td>3.10</td>\n",
       "      <td>3.13</td>\n",
       "      <td>3.09</td>\n",
       "      <td>3.11</td>\n",
       "      <td>1389910.0</td>\n",
       "      <td>517677568.0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>1</th>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2</th>\n",
       "      <td>2020/1/6</td>\n",
       "      <td>3.09</td>\n",
       "      <td>3.11</td>\n",
       "      <td>3.07</td>\n",
       "      <td>3.08</td>\n",
       "      <td>1371085.0</td>\n",
       "      <td>0.0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>3</th>\n",
       "      <td>2020/1/7</td>\n",
       "      <td>3.08</td>\n",
       "      <td>3.13</td>\n",
       "      <td>3.08</td>\n",
       "      <td>NaN</td>\n",
       "      <td>1565238.0</td>\n",
       "      <td>582835392.0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>4</th>\n",
       "      <td>2020/1/8</td>\n",
       "      <td>3.10</td>\n",
       "      <td>3.10</td>\n",
       "      <td>3.07</td>\n",
       "      <td>3.08</td>\n",
       "      <td>NaN</td>\n",
       "      <td>385355648.0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>...</th>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>729</th>\n",
       "      <td>2023/1/4</td>\n",
       "      <td>3.16</td>\n",
       "      <td>3.21</td>\n",
       "      <td>3.16</td>\n",
       "      <td>3.20</td>\n",
       "      <td>2007337.0</td>\n",
       "      <td>640825711.0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>730</th>\n",
       "      <td>2023/1/5</td>\n",
       "      <td>3.21</td>\n",
       "      <td>3.23</td>\n",
       "      <td>3.20</td>\n",
       "      <td>3.20</td>\n",
       "      <td>1180471.0</td>\n",
       "      <td>379146671.0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>731</th>\n",
       "      <td>2023/1/6</td>\n",
       "      <td>3.21</td>\n",
       "      <td>3.22</td>\n",
       "      <td>3.18</td>\n",
       "      <td>3.21</td>\n",
       "      <td>1258527.0</td>\n",
       "      <td>402754304.0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>732</th>\n",
       "      <td>2023/1/9</td>\n",
       "      <td>3.21</td>\n",
       "      <td>3.22</td>\n",
       "      <td>3.19</td>\n",
       "      <td>3.19</td>\n",
       "      <td>835156.0</td>\n",
       "      <td>267453283.0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>733</th>\n",
       "      <td>2023/1/10</td>\n",
       "      <td>3.20</td>\n",
       "      <td>3.20</td>\n",
       "      <td>3.18</td>\n",
       "      <td>3.18</td>\n",
       "      <td>665470.0</td>\n",
       "      <td>211969670.0</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "<p>734 rows × 7 columns</p>\n",
       "</div>"
      ],
      "text/plain": [
       "          date  open  high   low  close     volume     turnover\n",
       "0     2020/1/2  3.10  3.13  3.09   3.11  1389910.0  517677568.0\n",
       "1          NaN   NaN   NaN   NaN    NaN        NaN          NaN\n",
       "2     2020/1/6  3.09  3.11  3.07   3.08  1371085.0          0.0\n",
       "3     2020/1/7  3.08  3.13  3.08    NaN  1565238.0  582835392.0\n",
       "4     2020/1/8  3.10  3.10  3.07   3.08        NaN  385355648.0\n",
       "..         ...   ...   ...   ...    ...        ...          ...\n",
       "729   2023/1/4  3.16  3.21  3.16   3.20  2007337.0  640825711.0\n",
       "730   2023/1/5  3.21  3.23  3.20   3.20  1180471.0  379146671.0\n",
       "731   2023/1/6  3.21  3.22  3.18   3.21  1258527.0  402754304.0\n",
       "732   2023/1/9  3.21  3.22  3.19   3.19   835156.0  267453283.0\n",
       "733  2023/1/10  3.20  3.20  3.18   3.18   665470.0  211969670.0\n",
       "\n",
       "[734 rows x 7 columns]"
      ]
     },
     "execution_count": 49,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "boc_mV= pd.read_csv('../dataFiles/boc_missingVal.csv')\n",
    "boc_mV\n"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 50,
   "id": "ebe71714",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>date</th>\n",
       "      <th>open</th>\n",
       "      <th>high</th>\n",
       "      <th>low</th>\n",
       "      <th>close</th>\n",
       "      <th>volume</th>\n",
       "      <th>turnover</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>0</th>\n",
       "      <td>False</td>\n",
       "      <td>False</td>\n",
       "      <td>False</td>\n",
       "      <td>False</td>\n",
       "      <td>False</td>\n",
       "      <td>False</td>\n",
       "      <td>False</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>1</th>\n",
       "      <td>True</td>\n",
       "      <td>True</td>\n",
       "      <td>True</td>\n",
       "      <td>True</td>\n",
       "      <td>True</td>\n",
       "      <td>True</td>\n",
       "      <td>True</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2</th>\n",
       "      <td>False</td>\n",
       "      <td>False</td>\n",
       "      <td>False</td>\n",
       "      <td>False</td>\n",
       "      <td>False</td>\n",
       "      <td>False</td>\n",
       "      <td>False</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>3</th>\n",
       "      <td>False</td>\n",
       "      <td>False</td>\n",
       "      <td>False</td>\n",
       "      <td>False</td>\n",
       "      <td>True</td>\n",
       "      <td>False</td>\n",
       "      <td>False</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>4</th>\n",
       "      <td>False</td>\n",
       "      <td>False</td>\n",
       "      <td>False</td>\n",
       "      <td>False</td>\n",
       "      <td>False</td>\n",
       "      <td>True</td>\n",
       "      <td>False</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "</div>"
      ],
      "text/plain": [
       "    date   open   high    low  close  volume  turnover\n",
       "0  False  False  False  False  False   False     False\n",
       "1   True   True   True   True   True    True      True\n",
       "2  False  False  False  False  False   False     False\n",
       "3  False  False  False  False   True   False     False\n",
       "4  False  False  False  False  False    True     False"
      ]
     },
     "execution_count": 50,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "boc_mV.isnull().head()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 51,
   "id": "01d93439",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>date</th>\n",
       "      <th>open</th>\n",
       "      <th>high</th>\n",
       "      <th>low</th>\n",
       "      <th>close</th>\n",
       "      <th>volume</th>\n",
       "      <th>turnover</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>0</th>\n",
       "      <td>True</td>\n",
       "      <td>True</td>\n",
       "      <td>True</td>\n",
       "      <td>True</td>\n",
       "      <td>True</td>\n",
       "      <td>True</td>\n",
       "      <td>True</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>1</th>\n",
       "      <td>False</td>\n",
       "      <td>False</td>\n",
       "      <td>False</td>\n",
       "      <td>False</td>\n",
       "      <td>False</td>\n",
       "      <td>False</td>\n",
       "      <td>False</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2</th>\n",
       "      <td>True</td>\n",
       "      <td>True</td>\n",
       "      <td>True</td>\n",
       "      <td>True</td>\n",
       "      <td>True</td>\n",
       "      <td>True</td>\n",
       "      <td>True</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>3</th>\n",
       "      <td>True</td>\n",
       "      <td>True</td>\n",
       "      <td>True</td>\n",
       "      <td>True</td>\n",
       "      <td>False</td>\n",
       "      <td>True</td>\n",
       "      <td>True</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>4</th>\n",
       "      <td>True</td>\n",
       "      <td>True</td>\n",
       "      <td>True</td>\n",
       "      <td>True</td>\n",
       "      <td>True</td>\n",
       "      <td>False</td>\n",
       "      <td>True</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "</div>"
      ],
      "text/plain": [
       "    date   open   high    low  close  volume  turnover\n",
       "0   True   True   True   True   True    True      True\n",
       "1  False  False  False  False  False   False     False\n",
       "2   True   True   True   True   True    True      True\n",
       "3   True   True   True   True  False    True      True\n",
       "4   True   True   True   True   True   False      True"
      ]
     },
     "execution_count": 51,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "boc_mV.notnull().head()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 52,
   "id": "c55dde4b",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>date</th>\n",
       "      <th>open</th>\n",
       "      <th>high</th>\n",
       "      <th>low</th>\n",
       "      <th>close</th>\n",
       "      <th>volume</th>\n",
       "      <th>turnover</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>0</th>\n",
       "      <td>2020/1/2</td>\n",
       "      <td>3.10</td>\n",
       "      <td>3.13</td>\n",
       "      <td>3.09</td>\n",
       "      <td>3.11</td>\n",
       "      <td>1389910.0</td>\n",
       "      <td>517677568.0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2</th>\n",
       "      <td>2020/1/6</td>\n",
       "      <td>3.09</td>\n",
       "      <td>3.11</td>\n",
       "      <td>3.07</td>\n",
       "      <td>3.08</td>\n",
       "      <td>1371085.0</td>\n",
       "      <td>0.0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>6</th>\n",
       "      <td>2020/1/10</td>\n",
       "      <td>3.08</td>\n",
       "      <td>3.09</td>\n",
       "      <td>3.07</td>\n",
       "      <td>3.08</td>\n",
       "      <td>538335.0</td>\n",
       "      <td>198636220.0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>7</th>\n",
       "      <td>2020/1/13</td>\n",
       "      <td>3.09</td>\n",
       "      <td>3.09</td>\n",
       "      <td>3.07</td>\n",
       "      <td>3.09</td>\n",
       "      <td>537305.0</td>\n",
       "      <td>198075977.0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>11</th>\n",
       "      <td>2020/1/17</td>\n",
       "      <td>3.04</td>\n",
       "      <td>3.06</td>\n",
       "      <td>3.04</td>\n",
       "      <td>3.04</td>\n",
       "      <td>642486.0</td>\n",
       "      <td>234889781.0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>...</th>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>729</th>\n",
       "      <td>2023/1/4</td>\n",
       "      <td>3.16</td>\n",
       "      <td>3.21</td>\n",
       "      <td>3.16</td>\n",
       "      <td>3.20</td>\n",
       "      <td>2007337.0</td>\n",
       "      <td>640825711.0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>730</th>\n",
       "      <td>2023/1/5</td>\n",
       "      <td>3.21</td>\n",
       "      <td>3.23</td>\n",
       "      <td>3.20</td>\n",
       "      <td>3.20</td>\n",
       "      <td>1180471.0</td>\n",
       "      <td>379146671.0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>731</th>\n",
       "      <td>2023/1/6</td>\n",
       "      <td>3.21</td>\n",
       "      <td>3.22</td>\n",
       "      <td>3.18</td>\n",
       "      <td>3.21</td>\n",
       "      <td>1258527.0</td>\n",
       "      <td>402754304.0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>732</th>\n",
       "      <td>2023/1/9</td>\n",
       "      <td>3.21</td>\n",
       "      <td>3.22</td>\n",
       "      <td>3.19</td>\n",
       "      <td>3.19</td>\n",
       "      <td>835156.0</td>\n",
       "      <td>267453283.0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>733</th>\n",
       "      <td>2023/1/10</td>\n",
       "      <td>3.20</td>\n",
       "      <td>3.20</td>\n",
       "      <td>3.18</td>\n",
       "      <td>3.18</td>\n",
       "      <td>665470.0</td>\n",
       "      <td>211969670.0</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "<p>702 rows × 7 columns</p>\n",
       "</div>"
      ],
      "text/plain": [
       "          date  open  high   low  close     volume     turnover\n",
       "0     2020/1/2  3.10  3.13  3.09   3.11  1389910.0  517677568.0\n",
       "2     2020/1/6  3.09  3.11  3.07   3.08  1371085.0          0.0\n",
       "6    2020/1/10  3.08  3.09  3.07   3.08   538335.0  198636220.0\n",
       "7    2020/1/13  3.09  3.09  3.07   3.09   537305.0  198075977.0\n",
       "11   2020/1/17  3.04  3.06  3.04   3.04   642486.0  234889781.0\n",
       "..         ...   ...   ...   ...    ...        ...          ...\n",
       "729   2023/1/4  3.16  3.21  3.16   3.20  2007337.0  640825711.0\n",
       "730   2023/1/5  3.21  3.23  3.20   3.20  1180471.0  379146671.0\n",
       "731   2023/1/6  3.21  3.22  3.18   3.21  1258527.0  402754304.0\n",
       "732   2023/1/9  3.21  3.22  3.19   3.19   835156.0  267453283.0\n",
       "733  2023/1/10  3.20  3.20  3.18   3.18   665470.0  211969670.0\n",
       "\n",
       "[702 rows x 7 columns]"
      ]
     },
     "execution_count": 52,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "boc_mV1 = boc_mV\n",
    "boc_mV1.dropna()\n"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "id": "90840b90",
   "metadata": {},
   "outputs": [],
   "source": [
    "df.dropna(axis = 1, thresh = 3) "
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "id": "42bef99a",
   "metadata": {},
   "outputs": [],
   "source": [
    "df.dropna(how = 'ALL')"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 53,
   "id": "26f31ab4",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>date</th>\n",
       "      <th>open</th>\n",
       "      <th>high</th>\n",
       "      <th>low</th>\n",
       "      <th>close</th>\n",
       "      <th>volume</th>\n",
       "      <th>turnover</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>0</th>\n",
       "      <td>2020/1/2</td>\n",
       "      <td>3.10</td>\n",
       "      <td>3.13</td>\n",
       "      <td>3.09</td>\n",
       "      <td>3.11</td>\n",
       "      <td>1389910.0</td>\n",
       "      <td>517677568.0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>1</th>\n",
       "      <td>66</td>\n",
       "      <td>66.00</td>\n",
       "      <td>66.00</td>\n",
       "      <td>66.00</td>\n",
       "      <td>66.00</td>\n",
       "      <td>66.0</td>\n",
       "      <td>66.0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2</th>\n",
       "      <td>2020/1/6</td>\n",
       "      <td>3.09</td>\n",
       "      <td>3.11</td>\n",
       "      <td>3.07</td>\n",
       "      <td>3.08</td>\n",
       "      <td>1371085.0</td>\n",
       "      <td>0.0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>3</th>\n",
       "      <td>2020/1/7</td>\n",
       "      <td>3.08</td>\n",
       "      <td>3.13</td>\n",
       "      <td>3.08</td>\n",
       "      <td>66.00</td>\n",
       "      <td>1565238.0</td>\n",
       "      <td>582835392.0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>4</th>\n",
       "      <td>2020/1/8</td>\n",
       "      <td>3.10</td>\n",
       "      <td>3.10</td>\n",
       "      <td>3.07</td>\n",
       "      <td>3.08</td>\n",
       "      <td>66.0</td>\n",
       "      <td>385355648.0</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "</div>"
      ],
      "text/plain": [
       "       date   open   high    low  close     volume     turnover\n",
       "0  2020/1/2   3.10   3.13   3.09   3.11  1389910.0  517677568.0\n",
       "1        66  66.00  66.00  66.00  66.00       66.0         66.0\n",
       "2  2020/1/6   3.09   3.11   3.07   3.08  1371085.0          0.0\n",
       "3  2020/1/7   3.08   3.13   3.08  66.00  1565238.0  582835392.0\n",
       "4  2020/1/8   3.10   3.10   3.07   3.08       66.0  385355648.0"
      ]
     },
     "execution_count": 53,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "boc_mV2 = boc_mV\n",
    "boc_mV2.fillna(66).head()\n"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "id": "c85a4cc9",
   "metadata": {},
   "outputs": [],
   "source": [
    "# 用缺失值的前值填充\n",
    "missingVal.fillna(method= 'ffile')\n"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "id": "fd9f5e03",
   "metadata": {},
   "outputs": [],
   "source": [
    "# 用缺失值的后值填充\n",
    "missingVal.fillna(method= 'bfill')\n"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "id": "3f283dfa",
   "metadata": {},
   "outputs": [],
   "source": [
    "# 在所有空白单元格中输入“0”\n",
    "missingVal.fillna(0)\n"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "id": "cc3ae71a",
   "metadata": {},
   "outputs": [],
   "source": [
    "boc_mV.sum(skipna = False)\n",
    "boc_mV2.mean(skipna = False)"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "f6098b88",
   "metadata": {},
   "source": [
    "## 4.4.1 检测离群值"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 19,
   "id": "b0587b2d",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "iVBORw0KGgoAAAANSUhEUgAABSUAAADxCAYAAAA9ZtJ4AAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjcuMCwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy88F64QAAAACXBIWXMAAB7CAAAewgFu0HU+AAAp/klEQVR4nO3de5zVdZ0/8Pcww2W4jIgwgAyLihdErRSwsAI0oXxYEVoWuyZumSblmu6mVo9Ql4cmWlq7S7WbpdYa3hLJS3khLiKyyGKGF0oNU5C7Gre5wMz39wc75zcTZ2545jtnOM/n4+Gj45zP9zOf47z6fr/zmu8536IkSZIAAAAAAEhJl45eAAAAAABQWJSSAAAAAECqlJIAAAAAQKqUkgAAAABAqpSSAAAAAECqlJIAAAAAQKqUkgAAAABAqpSSAAAAAECqlJIAAAAAQKqUkgAAAABAqpSSAAAAAECqlJIAAAAAQKqUkgAAAABAqpSSAAAAAECqlJIAAAAAQKqUkgAAAABAqpSSAAAAAECqSjp6Ae2pqqoqVq1aFRERAwYMiJKSA/rlAgAAAEBO7dmzJzZv3hwRESeccEL06NEjJ/Me0C3dqlWr4uSTT+7oZQAAAABAp7d8+fIYM2ZMTuby9m0AAAAAIFUH9JWSAwYMyDxevnx5DB48uANXc2CorKyMxYsXR0TEuHHjorS0tINXRL6TGdpCXmgrmaGtZIa2khnaSmZoK5mhrdLOzPr16zPvRG7Ytb1bB3Qp2fAzJAcPHhwVFRUduJoDQ2VlZfTv3z8iIioqKuwsaZHM0BbyQlvJDG0lM7SVzNBWMkNbyQxt1ZGZyeX9Wrx9GwAAAABIlVISAAAAAEiVUhIAAAAASJVSEgAAAABIlVISAAAAAEiVUhIAAAAASJVSEgAAAABIlVISAAAAAEiVUhIAAAAASJVSEgAAAABIlVISAAAAAEiVUhIAAAAASJVSEgAAAABIlVISAAAAAEiVUhIAAAAASJVSEgAAAABIlVISAAAAAEiVUhIAAAAASJVSEgAAAABIlVISAAAAAEiVUhIAAAAASJVSEgAAAABIlVISAAAAAEiVUhIAAAAASJVSEgAAAABIlVISAAAAAEiVUhIAAAAASJVSEgAAAABIlVISAAAAAEiVUhIAAAAASJVSEgAAAABIlVISAAAAAEiVUhIAAAAASJVSEgAAAABIlVISAAAAAEiVUhIAAAAASJVSEgAAAABIlVISAAAAAEiVUhIAAAAASJVSEgAAAABIlVISAAAAAEiVUhIAAAAASJVSEgAAAABIlVISAAAAAEiVUhIAAAAASJVSEgAAAABIlVISAAAAAEiVUhIAAAAASJVSEgAAAABIlVISAAAAAEiVUhIAAAAASJVSEgAAAABIlVISAAAAAEiVUhIAAAAASJVSEgAAAABIlVISAAAAAEiVUhIAAAAASJVSEgAAAABIlVISAAAAAEiVUhIAAAAASJVSEgAAAABIVUlHLwDejXvvvTdmzJgR27dv7+ilNOvhyTujvGcSm3YVxZnzenX0clKVJElUV1dHRET37t2jqKiog1dEPmtNXvr06RMzZ86MT3/602kvDwAAgBxRStKpzZgxI1avXt3Ry2jRId17x+BeXaK2tjbWrVvX0cuBTu/b3/62UhIAAKATU0rSqdVfIdmlS5cYPHhwB6+macXFOyIiieLi4hgyZEhHLydVrpSkLVrKy/r166Ouri7vr44GAACgee1aSm7atCmWL18ey5cvj2eeeSaeeeaZ2Lp1a0RETJs2LW6//fb2/PYUkMGDB8fatWs7ehlN+96xEdvfjMGDBsfatS919GpSVVlZGY899lhEREyaNClKS0s7eEXks5byUlFR4WpjAFK1bdu2eOONN6KysjKGDh0aRx55ZJSVlXX0sgDII9u2bYu1a9fGjh07onfv3lFRUeFY0QrtWkoOHDiwPacHAADIuSRJYuHChTF79ux44IEHora2NvNccXFxTJkyJaZPnx4TJkzwLhCAAuVY8e6ldvftoUOHxqRJk9L6dgAAAG22cuXKOOGEE+K0006LX/3qV41+yYyIqK2tjfvuuy9OO+20OOGEE2LlypUdtFIAOopjRW6065WSM2bMiDFjxsSYMWNi4MCB8dprr8Xhhx/ent+y4IwePTo2bNgQgwYNihUrVnT0cgD4P/bPAJ3P448/HlOmTImdO3dmvlZeXh4jR46Mnj17Rt++fWP+/PmxcePGiIh44YUXYty4cTF37tyYOHFiRy0bgBRlO1YMHDgwJk2aFAcddFD89a9/jccee8yxohXatZS89tpr23N6ImLDhg0+Xw0gD9k/A3QuK1eubPRL5oknnhhXXXVVfPSjH42FCxdGxN7POy4uLo65c+fGrFmz4tlnn42d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iTPOOCMiIp5//vn4zGc+E3V1dY3mkJvCNGXKlFixYkV88YtfjN///vcxbdq0GDt2bEycODGuueaa6NmzZ9x8882xZMmSGDRoUKNtZYaGcpWH+nlamqOleej8qqur44ILLshcxX399ddnHSczhefrX/96bNy4McaOHRtf+tKX2ry9zBSO+nPkiIjvf//78eqrr8Ypp5wSixYtil27dsVbb70Vd955ZwwePDgi9v5unu3qOJkpHMXFxfHf//3fcffdd8d73/veuPXWW+OTn/xkjBkzJs4+++yYO3dunHrqqfHoo482urisoXzNi1KSfSxatCiuuuqqiIgoLy+PH/3oR1nHVVVVZR639AHO3bt3zzxuzedjkH9qamriwgsvjCRJ4rLLLosTTjihTdvLS+HZuXNnROz9Ba64uDh+85vfxEUXXRQDBgyI7t27x+jRo+Ohhx7KFJNLly7d58OU5aYw7d69O375y1/Ggw8+mPUGNBs3bow5c+bEwoUL93lOZmgoV3mon6c1N6yQqwPbV7/61VixYkVE7L1RwCc/+cms42SmsCxevDh+9rOf7dcf7uvJTOGoP0eO2HuePGrUqJg/f36MGzcuSktL4+CDD46///u/j0WLFmXKoRkzZjg2FbjVq1fHL3/5y1i1alXW559++un4+c9/HuvXr8/6fL7mRSlJIy+88EJMmTIl9uzZE927d4977rknBg4cmHVsjx49Mo8b3hQnm4aX/JaWluZmsaTq+uuvj5deein+7u/+Lq6++uo2by8vhafhz/wzn/lM1rvedunSpdHNkubMmdPkHHJTGHbu3Bmnn356XHfddbF169a44oor4qWXXorq6ur461//Go899lh86EMfimeeeSY+8YlPxA9+8ING28sMDeUqD/XztDRHS/PQuX3nO9+JW2+9NSIiRo0aFbNnz25yrMwUjurq6swf7i+99NJ4z3ves1/zyEzhaHhsioi47rrr9vlaRMRRRx0VF198cUTsfRvtE088kXUemTnwPfnkkzF27NiYN29eDBkyJH7xi1/Ehg0boqamJt54442YPXt2lJaWxp133hknn3xy1s+CzNe8KCXJWLNmTUyaNCnefvvtKC4ujjlz5jR7V6Y+ffpkHrd0SW/Dvwa15nJh8svq1avjO9/5TkRE/Pu//3ujy7lbS14KT8Ofef3VkNkcd9xxMWTIkIiI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\n",
      "text/plain": [
       "<Figure size 800x100 with 1 Axes>"
      ]
     },
     "metadata": {
      "image/png": {
       "height": 120,
       "width": 658
      }
     },
     "output_type": "display_data"
    }
   ],
   "source": [
    "from matplotlib import pyplot as plt\n",
    "bank_loan = pd.read_csv('../dataFiles/bank_loan.csv')\n",
    "bank_loan1 = bank_loan.drop(['othdebt', 'default'], axis = 1)\n",
    "bank_loan2 = bank_loan.loc[0 : 10]\n",
    "fig = plt.boxplot (bank_loan2.income, vert = False)\n",
    "plt.rcParams['figure.figsize'] = (8, 1)  \n",
    "plt.grid()\n"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 57,
   "id": "df60e002",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>age</th>\n",
       "      <th>ed</th>\n",
       "      <th>employ</th>\n",
       "      <th>address</th>\n",
       "      <th>income</th>\n",
       "      <th>debtinc</th>\n",
       "      <th>creddebt</th>\n",
       "      <th>othdebt</th>\n",
       "      <th>default</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>0</th>\n",
       "      <td>41</td>\n",
       "      <td>3</td>\n",
       "      <td>17</td>\n",
       "      <td>12</td>\n",
       "      <td>176</td>\n",
       "      <td>9.3</td>\n",
       "      <td>11.359392</td>\n",
       "      <td>5.008608</td>\n",
       "      <td>1.0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>3</th>\n",
       "      <td>41</td>\n",
       "      <td>1</td>\n",
       "      <td>15</td>\n",
       "      <td>14</td>\n",
       "      <td>120</td>\n",
       "      <td>2.9</td>\n",
       "      <td>2.658720</td>\n",
       "      <td>0.821280</td>\n",
       "      <td>0.0</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "</div>"
      ],
      "text/plain": [
       "   age  ed  employ  address  income  debtinc   creddebt   othdebt  default\n",
       "0   41   3      17       12     176      9.3  11.359392  5.008608      1.0\n",
       "3   41   1      15       14     120      2.9   2.658720  0.821280      0.0"
      ]
     },
     "execution_count": 57,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "bank_loan2[bank_loan2.income > 100]"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 63,
   "id": "2bbd77a5",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "0    176\n",
       "3    120\n",
       "Name: income, dtype: int64"
      ]
     },
     "execution_count": 63,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "Q1 = bank_loan2.income.quantile(0.25)\n",
    "Q3 = bank_loan2.income.quantile(0.75)\n",
    "IQR = Q3-Q1\n",
    "BM = (bank_loan2.income > (Q3+1.5 *IQR)) | (bank_loan2.income < (Q1-1.5 *IQR))\n",
    "bank_loan2.income[BM]\n"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 65,
   "id": "1801e08f",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "25     2\n",
       "176    1\n",
       "31     1\n",
       "55     1\n",
       "120    1\n",
       "28     1\n",
       "67     1\n",
       "38     1\n",
       "19     1\n",
       "16     1\n",
       "Name: income, dtype: int64"
      ]
     },
     "execution_count": 65,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "bank_loan2.income.value_counts()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 21,
   "id": "6bafb62b",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "iVBORw0KGgoAAAANSUhEUgAABT8AAAGkCAYAAAD33lGpAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjcuMCwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy88F64QAAAACXBIWXMAAB7CAAAewgFu0HU+AABGPElEQVR4nO3deZRU1bk3/qeKBpo0IAhKmBwAFTCYKIE4cRUMIhpRVDSKCgq+aDBvyJWo8UZCVmKcNcO6TgEFjYZELxoDGhWDiCCC48UAvqIRUFDAgXnm/P7w1xWQpoGmq4fTn89avdah9qm9n3K3Vae/dc7ZmSRJkgAAAAAASJlsZRcAAAAAAJAPwk8AAAAAIJWEnwAAAABAKgk/AQAAAIBUEn4CAAAAAKkk/AQAAAAAUkn4CQAAAACkkvATAAAAAEgl4ScAAAAAkErCTwAAAAAglYSfAAAAAEAqCT8BAAAAgFQSfgIAAAAAqST8BAAAAABSSfgJAAAAAKSS8BMAAAAASCXhJwAAAACQSgWVXUBarF+/PmbPnh0REfvtt18UFPhPCwAAAAC7a/PmzbFs2bKIiOjUqVMUFhbudZ8SunIye/bs6Nq1a2WXAQAAAADV3syZM6NLly573Y/L3gEAAACAVHLmZznZb7/9ctszZ86M5s2bV2I1AAAAAFC9LFmyJHdl9bZZ294QfpaTbe/x2bx582jVqlUlVgMAAAAA1Vd5rafjsncAAAAAIJWEnwAAAABAKuU1/Hz99dfj17/+dfTu3Ttat24ddevWjfr168ehhx4aAwcOjKlTp5b7mOPGjYtevXpF8+bNo7CwMA466KC46KKLYsaMGeU+FgAAAABQdWWSJEny0fEJJ5wQL7744i73u+iii2LUqFFRp06dvRpv/fr10a9fv5gwYUKJ7dlsNkaOHBnXX3/9Xo2zMx9++GG0bt06IiIWLVrknp8AAAAAsAfyka/l7czPjz76KCIiWrRoET/60Y/isccei5kzZ8bLL78cd9xxR7Rs2TIiIh566KEYOHDgXo83aNCgXPDZvXv3eOKJJ2LmzJkxevToaNu2bWzdujVGjBgRo0aN2uuxAAAAAICqL29nfn7ve9+Liy++OM4+++yoVavWDu3Lly+P4447Lv7f//t/ERHx4osvRrdu3co01pQpU+LEE0+MiIjTTz89Hn/88e3GXL58eXTu3DkWLlwYjRs3jvfffz8aNWpUprF2xpmfAAAAAFB21erMzwkTJsS5555bYvAZEdG0adO4/fbbc/9+7LHHyjzWLbfcEhERtWrVirvuumuHMZs2bRo333xzRER8/vnnMXr06DKPBQAAAABUD5W62nvx2ZoREe+9916Z+li9enU8//zzERHRs2fPnSbCZ511VjRs2DAiIsaPH1+msQAAAACA6qNSw8+NGzfmtrPZspUyc+bM2LBhQ0R8ucjSztSpUyeOPvro3HM2bdpUpvEAAAAAgOqhoDIHnzJlSm67ffv2Zepj7ty5u91H+/bt49lnn43NmzfHu+++Gx07dtztcT788MNS25csWbLbfQEAAAAA+Vdp4efWrVvjpptuyv373HPPLVM/ixYtym3v6iaoxTdMLX7enoSf2z4XAAAAAKj6Ki38vPPOO2PmzJkREdG3b9/49re/XaZ+Vq1alduuX79+qfsWFRXltlevXl2m8aqyg66dWNklVIoPbjqtsksAAAAAoAqqlPBzypQpce2110ZExP777x933313mftav359brtOnTql7lu3bt3c9rp16/ZonG3PMC3JkiVLomvXrnvUJwAAAACQPxUefv7zn/+Mvn37xubNm6Nu3brxl7/8JZo1a1bm/goLC3Pb2y6gVJLihZEiIurVq7dH4+zqknoAAAAAoGqp0NXe//Wvf8XJJ58cn3/+edSqVSv+9Kc/lbpC++5o0KBBbntXl7KvWbMmt72rS+QBAAAAgOqtwsLPxYsXx3e/+91YvHhxZDKZuP/++6Nv37573e+2Z2TuakX2bS9dt4ARAAAAAKRbhYSfy5cvj549e8b7778fERG///3v4+KLLy6XvrddsX3evHml7lvcXlBQEO3atSuX8QEAAACAqinv4eeKFSuiV69eMWfOnIiIuOmmm2Lo0KHl1n+XLl1yCx1NmTJlp/tt3LgxZsyYscNzAAAAAIB0ymv4uXbt2jjttNPi9ddfj4iI//qv/4prrrmmXMdo0KBBnHTSSRERMWnSpJ1e+j5+/PhYuXJlRES5XG4PAAAAAFRteQs/N27cGH379o1p06ZFRMSPfvSj+NWvfrXH/YwZMyYymUxkMpkYOXJkifsMHz48IiI2b94cQ4cOjS1btmzXvnz58lzo2qhRoxg8ePAe1wEAAAAAVC8F+er4/PPPj2effTYiInr06BGDBg2K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NGvWrLJLAmA3bNq0KVavXh3r1q2LevXqRf369aN27dqVXRYVZPbs2TFv3rwoKCiIgw8+OL71rW9VdkkAAHkl/GSvLF26NEaPHh1TpkyJjz76KCIiWrRoESeccEJccskl0bx580qukPK0ZMmSuPHGG2PcuHHx6aefbtfWtm3buOKKK2Lo0KFRp06dSqoQgK964403Yvz48fHSSy/F3LlzY9myZTvss99++0WHDh3iuOOOi759+0bnzp0roVLKauHChXHHHXfE9OnTY8OGDXHooYfG5ZdfHieddFJun3feeScuvvjiePXVV7d7bsuWLePmm2+O888/v6LLZg+1adMm2rdvHwMGDIgzzjgjCgsLK7skqhhfbqTT1q1bY/78+bFw4cJYtWpVrFu3Lho0aBCNGzeOjh07xr777lvZJZJHGzZsiEmTJsWsWbO2O/moW7duceyxx1Z2edVGJkmSpLKLoOp58MEHIyLizDPPjIYNG5a4z6hRo+LHP/5xrF27tsT2wsLCuP322+Pyyy/PW52Un8ceeyz+z//5P7HPPvvEu+++GwUF2383MnXq1Dj77LPj008/jZLeNjKZTEREHHXUUTFx4sTYf//9K6RuKs+0adNi9OjRkclkYvTo0ZVdDnvJl1np8/bbb8ewYcNi8uTJucdKO+wrfh+PiDjxxBPjN7/5TXTq1CmvNbL3Jk+eHGeccUasWbNmh7Zrr702brjhhvj444+ja9eu8dFHH+30M/y2226LH//4xxVRMmWUzWZz/582aNAg+vXrFxdffHF069atkisjn3y5UTOtW7cuxowZE4899lhMnz49Nm7cuNN927RpE+edd14MHjw4DjrooIorkr3y6aefxrRp0yIi4rTTTotatWrtsM99990XI0aMKPGL64iITp06xT333BNHH310XmtNA+EnJSo+uJo9e3Z07Nhxh/b77rsvrrjiioj48g+pTCYTTZs2jSRJtgvHMplM3HfffTFo0KAKrZ89d9lll8Xo0aOjf//+8dBDD23XtnDhwvjWt74VK1asiCRJonnz5tGjR49o3bp1bNmyJd5777147rnnYtWqVZHJZKJr164xffr07f6QJn3Gjh0bl1xySWQymdiyZUtll8NO+DKrZnr66afj3HPPjbVr1+Y+k4uKiqJt27bRunXrKCoqirp168aGDRtizZo1sWjRonjvvfdy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Klq1amVxjCpu1apVERFxwAEHlNi+7ePNmjXbaT/FbatXry7H6siHjz76KCIijjzyyFL3K27/4osvdnj/r127dlx++eWRJElMnjw5P4VSLlq2bBkREXPnzt3u8dq1a+e2CwsLd9lP8T4WoC2dJcDYY40bN45ly5bt1r7FK89Zba7qO+ecc+Kpp56K+++/P6688sro0KFDRETUq1cvTjrppJg0aVLcd9998etf/7rUfu67777IZDLxrW99qwKqpizq1KkTmzZtiiOOOCL69u1b5n7efPPN+Otf/1qOlVHRfJmVTu3atYtXX301/vznP8eJJ55Y5n7GjRuX64+qqW3btvHGG2/Ek08+GaeffvoO7U8++WRue9KkSXH++eeX2M9zzz0XEV+uGk56dOnSJbp06RJ33nlnTJw4MR588MGYOHFibNy4MTZv3hxPP/10ZZdIKYqKimLlypWxePHi6Ny58w7tX/1yY7/99iuxH19uVB/FJ5xs2LCh1P02btxY4nax4nB0Z1+MUTV079495s2bFw899FBceumlucdbtGgRjRs3ji+++CJeffXVOO6440rtZ+bMmRHx7zCVnajYE02pLopPs540aVKyYMGC7X5OPPHEJJvNJo8//vgu+3n66aeTTCaTHHTQQfkvmr2yadOm5Bvf+Ebuxsovvvhirm3mzJlJ7dq1k1q1aiV33HHHDpdXJMmX9yb5wQ9+kPvd+fOf/1yR5bMHunTpkmQymaRz58571Y8Fj6qH0i6TbNasWamXzG7rtddecwl0NXHLLbfk5v32228vUx+33XZbro9bb721nCukvBTfe7mgoCC55557tmu75557koKCguSoo45KateunRx88MHbLWhWbPbs2bnFrX7wgx9UVOmUwe5c9r4rn332WXLXXXcl3/nOd3x+V3GdO3dOstlsMnjw4BLbL7vsstzvxCOPPLLTforvB3jEEUfkq1TKyTe+8Y0km80mN9xwQ6n7Fa+xUFBQkKxZs2aH9tdff90xWzUwc+bM3C1J7rzzzu3afvSjHyWZTCbp1q1bsmHDhp328cknn+RuXzd06NA8V1y9CT8p0e7cE/Caa67ZZT833nhjkslkkmOOOaYCqmZvvfXWW0mTJk1y89+jR4/k7rvvTt58883k7rvvTgoLC5NsNpsccMAByaBBg5Kf//znyc9+9rPk/PPPz92XKJPJJKecckplvxRKURxS161bt9QP010RflYPvsyqedauXZscdthhubk//PDDk1tuuSV55ZVXcqsFf9WKFSuSV155Jbnlllty9wrLZDLJYYcdlqxdu7aCXwG7a8GCBUlRUVHu2Gy//fZLunbtmuy33365x/7yl78kZ555ZpLJZJIWLVokN954Y/LMM88kEydOTK699tpkn332yS189tVFD6layiP83FZpKwhT+Xy5UfMMGzYsd3/WOXPmlLjPp59+mhx22GFJNpvd6SJWTzzxRJLJZJK2bdvms1zKweDBg3Pv7YMGDUo++OCDJEmSZOXKlUm7du2SbDabdO3aNXnuuee2W39j7dq1yZ/+9Kfk4IMPTjKZTFJYWLjT3xm+JPykRNveIH1nP+3atdtlP8WrFP7whz+sgKopD2+99VZy6KGH7jQA/+qN87/6+GmnnZasXr26sl8Gpdg2tNybVSCFn9WDL7Nqpvnz5yft27cvcf4bNGiQNG/ePDnwwAOT5s2b5/4w/up7+mGHHZbMnz+/sl8Ku/Dwww8nBQUF230+F29fdNFFSZIkydy5c5PGjRuX+rn+n//5n5X8StiV8g4/qdp8uVHz/Otf/0rq1q2bZLPZpGHDhsmIESOS6dOnJ++9917y+uuvJ3feeWfSunXr3HvB2LFjS+znyiuvzP1dRtW2YcOGpHfv3rk5rVWrVvKd73wnGTZsWHLttdfmTj7KZrNJYWFhcuCBByatWrXKLXhY/Ly77rqrsl9KlZdJEitWsKOxY8fu1n5nnXVWNGjQoMS2N998M4466qjIZDLxxz/+caf3maLq2bBhQ9x6661x77335m68vStHHnlkXHvttblFUai65s6dG4cffnhkMpn47W9/G1deeWWZ+hk7dmxccsklkclk3GC7Ciu+f1Rp2rZtG++++26p+xx33HExY8aMGDp0aPzud78rr/LIozVr1sStt94av/vd7+KLL77Y7efts88+8X//7/+Nn/zkJ1G/fv38FUi5efnll+PGG2+MadOmxcaNG+PQQw+NIUOGxODBg3PvAVOnTo3zzz9/h3vAfe1rX4trr702fvazn1VG6eyBbDYbmUwmZs+eHR07dqzscqgAjzzySAwYMCB3nJXJZHILTl544YXx4IMPxrx58+LYY4+NFStW7PD84n1//OMfx+23315xhVNm9913X1x++eW5tTO+qnhO+/TpE0888cQO7evWrYuWLVvGF198Ebfddlv853/+Zz7LpRxs2rQpfvnLX8bNN98cmzZtKnHui+e9uK343/vvv3/87ne/i3PPPbfiCq6mhJ/kzYIFC+KDDz6IiIjOnTv7A6oa2rp1a0yfPj1mzJgRc+bMic8++yzWrFkThYWF0aBBg2jdunUcfvjh8R//8R9x0EEHVXa57KYkSeKhhx6KJEmiY8eO0aVLl8ouiTzyZRabN2+OF154IaZOnRpz586NRYsWxapVq2L9+vW59/NWrVpFx44d4/jjj48TTzxxu5VGSY+NGzfG3//+95g7d24UFBTEwQcfHCeddFLss88+lV0au2HBggUR8eWiFhYTrTl8uVHzjBs3LoYNGxZLly7doa127dpxxRVXxK233lriZ/Wnn34aL7zwQkREdOvWLfbff/98l0s5+de//hX33ntvPPbYY/H+++/vdL/atWvHMcccE2effXZceumlUVRUVIFVVl/CTwCgVL7MAoCqzZcb6bJu3bp4+umnY9asWfHZZ59FUVFRdOjQIU499VSretcAy5cv3+nJR4cccogvwMpA+AkAAAAApNKubwQGAAAAAFANOVcWgFKtWLEinn766ViwYEHUr18/OnXqFMcff/xuLaRD9fPxxx/nFjpr0aJFNG/evJIrAmBPjB8/Pv70pz/FrFmzYunSpVFQUBAtW7aMbt26xZAhQ6Jz586VXSJ54HgNYOdc9s4uTZs2LR577LF47733IpvNRvv27ePcc8+No446apfPfffdd6NXr16RyWTivffeq4BqKas2bdpE+/btY8CAAXHGGWdEYWFhZZdEnr399tvxi1/8Il588cVYv359tG/fPoYNG7bdYjYPPvhgXHnllbFmzZrtnnvwwQfHH/7wh+jevXtFl00ebNmyJe6+++74/e9/H/Pnz9+urU2bNnHllVfGD37wA4vgVFNvvfXWdp/h7du3363nLVu2LO6+++6IiBgxYkQ+S6QcOF5LvxkzZsQtt9wStWvXjocffniHe759/PHH0a9fv5g+fXpE/Hs14IjYbvXgH/zgB/Gb3/wmatWqVTGFs1ccrwGUgwR2YuPGjUn//v2TbDZb4s8555yTLF26tNQ+3n777SSTySTZbLaCqqasiucpm80m++yzTzJ48ODkxRdfrOyyyJNnnnkmKSwsTLLZbJLJZLab/2uuuSZJkiSZMGFCUlBQkGv/6k9hYWHy/PPPV/IrYVe6d++e9OjRI/nggw9KbF+xYkXSvXv33Px/dZ6LHz/hhBOSFStWVHD17I2///3vySGHHLLD5/cRRxyRTJgwYZfP9xlePTheqzl+8pOfJJlMJunVq9cObatXr046deq03ft4q1atkmOOOSbp2rVr0rRp0+3e1y+77LJKeAXsKcdrlMWYMWOSbDab1KpVq7JLoQKY793jHHh2avDgwfHII49EkiQl/owfPz6OOOKIeOmllyq7VMpRkiSxcuXKuP/+++PEE0+MNm3axC9+8Yt4//33K7s0yslnn30WF154YWzYsCGSJIn27dtH586dI5vNRpIkceutt8asWbNi2LBhsXXr1jj33HPj4YcfjmeffTYeeOCBOPXUUyMiYsOGDXHppZfG+vXrK/kVUZoXXnghXnjhhR3OBik2cODAeOGFFyJJkqhdu3acdtpp8ZOf/CSGDx8ep556ahQUFESSJDF16tS47LLLKrh6yurRRx+N008/Pd57770dPr/ffvvt6NOnTwwaNCjWrVtX2aWylxyv1RwvvvhiZDKZOP3003dou/322+Ptt9+OiIjevXvH22+/HYsWLYrp06fHK6+8EsuWLYvJkyfHt771rUiSJEaPHh1Tpkyp6JfAHnC8xt4o/gygZjDfu6FiMlaqm6lTp+a+WTzssMOSCRMmJKtXr04+++yzZPz48cl3vvOd3LeJ9erVS/7617+W2I8zCaqP4nnq379/0rJlyx2+Xc5ms8nxxx+f/OEPf3D2VzV3yy23JJlMJqldu3byxBNP5B6fM2dO8vWvfz3JZrPJUUcdlWSz2eSPf/xjiX3ccccdud+PsWPHVlTplEHxPP3zn//coW3y5Mm59qOOOip5//33d9jnvffeS4488sjcfjNmzKiIstkLS5YsSRo2bJibs3POOSf57//+7+SOO+5IzjjjjNwZQtlsNunatWuyfPnyEvvxGV71OV6rWVq0aJFks9nk6aef3qGtTZs2STabTU477bRk69atO+1j1apVSYcOHZJsNpucf/75+SyXveR4jbIaM2aM9/QaxHzvHuEnJRo4cGCSyWSS1q1bJ59++ukO7Vu3bk1uu+22pHbt2rkP5ZI+dB1MVx/bBiRbtmxJnnnmmaR///5JUVHRDkFovXr1kvPOOy+ZOHFismXLlsounT104oknJtlsNjnvvPN2aLv99ttzc3322WeX2s/xxx+fZLPZpF+/fvkqlXJQWvg5YMCAJJPJJPvtt1+pl8V+/PHHSdOmTZNsNptcccUV+SyXcjBy5MjcZ3NJYdebb76ZfPvb3879bnTs2DFZvHjxDvv5DK/6HK/VLHXr1k2y2WzyxhtvbPf4p59+mpu/1157bZf9PPDAA0kmk0kOOOCAPFVKeXC8RlkJw2oW8717rPZOiaZPnx6ZTCauuuqq2HfffXdoL2779re/HWeddVZ8/vnnMWDAgFi1alVcfvnllVAx5SmbzcbJJ58cJ598cqxevToee+yxePDBB2PKlCmRJEmsX78+Hn300Xj00Udj//33j/79+8fFF18cRxxxRGWXzm6YM2dOREScc845O7T16dMnhg8fHhER5557bqn99O/fP6ZNmxZvvvlmuddIxSh+r7/88stjv/322+l+zZo1iyFDhsSvf/3r3EIaVF3PPPNMZDKZGDx4cPTp02eH9m9+85sxbdq0GDp0aIwePTrmzZsXxx9/fDz//PNx0EEHVXzBlJnjtZqlcePGsXTp0vjss8+2e3zbf3fq1GmX/RQfry1durR8C6RcOV6reS699NJy6eeri1dSNZnviiX8pESLFy+OiIhjjjmm1P1OOOGEePHFF6NXr16xePHiGDp0aKxevTr3YUz1V79+/Rg4cGAMHDgwFi1aFA899FD88Y9/jHnz5kVExCeffBJ33nln3HnnndGpU6cYOHBgXHDBBbH//vtXcuXszBdffBEREa1atdqhrWXLlrnttm3bltpP8R9Yn3zySfkVR4X6+OOPI+LL9/Jd6d69e/z617+ORYsW5bss9tI777wTERFnnXXWTvepU6dO/OEPf4g2bdrEf/3Xf8UHH3wQ3bp1i+eee263V4On8jleq1natm0bS5cujWnTpkWPHj1yjzdt2jS3vXLlymjSpEmp/axcuTIivjzGo+pyvFbzjBkzJjKZTGWXQQUx3xXLgkeUaNOmTRERUatWrV3ue/jhh8fUqVPj4IMPjiRJ4pprromf//zn+S6RStC6deu47rrrYs6cOfHKK6/E0KFDo2nTprkbLM+ePTuuuuqqaNWqVXzve9+r7HLZiXr16kXEl2f47qztq9sladCgQUSEG+hXY5s3b46IKPWsz2LFf1yvXr06rzWx91atWhUR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\n",
      "text/plain": [
       "<Figure size 800x200 with 1 Axes>"
      ]
     },
     "metadata": {
      "image/png": {
       "height": 210,
       "width": 671
      }
     },
     "output_type": "display_data"
    }
   ],
   "source": [
    "bank_loan2.income.value_counts().plot.bar()\n",
    "plt.rcParams['figure.figsize'] = (8, 3)  "
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 24,
   "id": "a10ecc8a",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "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nTtlGIYMw5DL5dLzzz+vq666ypLz9+vXTytXrgy531VXXaV58+YFvf3KMAxNnDhRc+fODbjPhAkTVFRUFHQ6/rZt2zRo0CB99tlnpttbtWqlv//97xo4cGDIuCNVWlqqzp07S5J27dql3Nxcy88BAAAARMMwDP3+97/Xhg0bQu6bl5enWbNmcRssYLOysjKNHDmyznMLFy5U69at7QkIjuDE94XH46HlDiwTz/qaLfcpXH311XrllVfUsWNHGYahmpoabd++XR988IHWrl2r7du3q6amRoZhqGPHjnr11VctK95K0u7duyVJHTt21E033aTFixdr3bp1Wrt2rR566CH/1Pm//e1vGjt2bNCxbrvtNn/x9uyzz1ZxcbHWrVun4uJinX322ZKkuXPn6vbbbw84xqFDhzR48GB/8fbaa6/V8uXL9f7772vWrFnKzs7W/v37NWLECG3atCnWLx8AAABoNHy9CpOTgy/fkZycrEmTJlG8BQCEjeItGgtbZuD6eL1evfzyy/rXv/6lkpIS/fDDD5Kktm3bqmfPnvrFL36hoUOHhrxYi9TgwYN19dVX6/LLL1eLFi0abN+3b5/y8/P1+eefS5JWrlypn//85w3227p1q3r06CGv16u8vDytXLmyzu1aFRUV6tevn9avX6/k5GRt2bJFXbp0aTDOH//4R/3pT3+SJN13332aNm1ane1r167VBRdcIK/Xq/79++udd96J6euvjxm4AAAAcLpnn3026IJmhYWFde7ya06YQQanceJMS9iP9wWauiY3A9cnOTlZI0aM0FNPPaU1a9Zo8+bN2rx5s9asWaOnnnpKI0aMsLx4K0mvvfaaRo4caVq8laR27drpwQcf9P//4sWLTfd7+OGH5fV6JUmPPfZYg15bmZmZeuyxxyQdKVY/8sgjDcaorq7Wo48+Kknq0aOHbrnllgb79OnTR+PHj5ckvfvuu2HdPgYAAAA0JcEWNGvOC5e53W7NmDFDbrfb7lAAAECcsNRjABdeeKH/8bZt2xpsNwxDS5culSR1795d5513nuk45513nk455RRJ0pIlS1R/wvOKFStUVlYmSRozZkzA1Tdrt3J46aWXwv0yAAAAgCYh2IJmzXnhsuLiYpWUlASdnQwAABo3CrgBeDwe/2OzouqOHTv8vXT79esXdCzf9tLSUu3cubPOtlWrVjXYz0xe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58qOHTv8fSn79esXdCzf9tLSUu3cudOyGBLFqjhqXxxEOo5VMRQXF/sfd+/ePeLjI41j0qRJKi8v11VXXVXnF2IsGtP7wtcnJy8vz38R6es9uGPHDrnd7rjHEMzBgwe1ZMkSSdLxxx+vCy64IG5xdOvWTdKR3BHIgQMHtG/fvjr7WxXDDz/84H989NFHBxwnOTlZbdu2lSS9//778nq9EcWxefNmffTRR5Ia/owlIm+GiiGRrIgjlrxpVQyx5s1I44hH3ow0hngKFUe882Y4MQRjVd4MJ454581QMcQjby5cuFCvvfaa2rZtq/vvvz+sGOORO6OJw2rxjCGS3BnPOMLNn1bEYEXubMzvC6tzZzxei0jzZ7QxWJ07o4kjUdedwSTqurMpifW60ypWXHuGK17XnY1FIq47I0EBF1F57733/I/NksbmzZuDbq+t9vbax8UaQ6JYFUcs48Ry7L59+7R27VqNHz9e99xzjyTpqKOO0ujRoyMaJ9I45s+frzfeeENt2rTRAw88EPG5rIhBksaOHaujjz5aqampateunc477zzddttt/guaeMWxd+9ebd++XZLUp08fHThwQFOmTFG7du3UuXNnnXTSScrJyVG/fv30+uuvxyWGUBYvXqyKigpJ0tVXXy2XyxW3OHyLOHz//fcqKioy3efOO+9ssL9VMdT+JHv//v0BxzEMQwcOHJB0pCi8devWkOeuqKjQF198oYceekj9+/fX4cOHJUk33XRTnf3imTfDjSHerI4jmve4FTFYkTejicPqvBnta2F13gw3jnjmTavem7HmzUjiiFfeDDcGq/NmWVmZ/xz33nuv2rdvH1a8VufOaOOwUrxjCDd3xiOOSPOnFTFYkTutei1iyZ/RxmB17ozX+zOS/BlLDFbmzmjjsDp/Llq0SKeccooyMjLUsmVLnXzyyRozZozefffdgGPH47ozmjisFs8YIrnutDqOaK49Y43BqutOK16LWK89o4khEX+vR8ym1g1oxA4fPmycc845/n4iH374YYN9nnzySf/2RYsWBR1v0aJF/n2LioosiyEQK3s5xhJHbR999JHRokULQ5Jx2mmnxT2Gfv36+fev/69t27bGe++9F/HXEEkcP/zwg3H00UcbkoynnnqqzrZYejmGG0PtfjqB/qWnp4f9fowmjhUrVvi333rrrUaXLl2CxnPzzTfH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\n",
      "text/plain": [
       "<Figure size 800x200 with 1 Axes>"
      ]
     },
     "metadata": {
      "image/png": {
       "height": 217,
       "width": 696
      }
     },
     "output_type": "display_data"
    }
   ],
   "source": [
    "import seaborn as sns \n",
    "sns.boxplot(x = bank_loan.age, y = bank_loan.income)\n",
    "plt.rcParams['figure.figsize'] = (8, 2)  "
   ]
  }
 ],
 "metadata": {
  "kernelspec": {
   "display_name": "Python 3 (ipykernel)",
   "language": "python",
   "name": "python3"
  },
  "language_info": {
   "codemirror_mode": {
    "name": "ipython",
    "version": 3
   },
   "file_extension": ".py",
   "mimetype": "text/x-python",
   "name": "python",
   "nbconvert_exporter": "python",
   "pygments_lexer": "ipython3",
   "version": "3.10.9"
  }
 },
 "nbformat": 4,
 "nbformat_minor": 5
}
